第5篇+汇编语言程序设计.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 汇编语言程序设计 主要内容 顺序、分支、循环结构程序设计 子程序设计 转移指令、循环指令和子程序伪指令 教学要求 掌握: (1)分支程序的概念、结构和设计 (2)循环程序的概念、结构和设计 (3)子程序的概念、结构和设计 了解: 转移表法和地址表法多分支程序的设计原理;多重循环程序的结构形式,内层循环与外层循环遵守的层次结构规则,参数修改对各层的相互影响;汇编递归程序方法。 编制一个汇编语言程序的步骤 (1)分析题意,确定算法。 (2)根据算法,确定程序流程或画出程序框图。 (3)根据流程或框图编写程序。 (4)上机调试程序。 5.1 顺序程序设计 顺序结构是最简单的程序结构,程序的执行顺序就是指令的编写顺序,所以,安排指令的先后次序就显得至关重要。 【例】 设置光标到屏幕左上角 SET_CUR PROC MOV AH,2 ;设置光标位置功能 MOV BH,0 ;页号 MOV DX,0 ;行DH,列DL INT 10H ;BIOS输出字符中断 RET SET_CUR ENDP 这个程序段是顺序执行的,一条指令执行后顺序执行紧接其后的另一条指令。 【例】 设在X单元中存放一个0~7之间的整数,用查表法求出其平方值,并将结果存入Y单元。 分析:根据题意,首先将0~7所对应的平方值存入连续的8个单元中,构成一张平方值表,其首地址为SQTAB。 由表的存放规律可知:表首址SQTAB与X单元中的数i之和,正是i2所在单元的地址。 DATA SEGMENT ;数据段定义 SQTAB DB 0,1,4,9,16,25,36,49 ;平方值表 X DB 5 Y DB ? DATA ENDS STACK SEGMENT PARA STACK STACK TAPN DB 100 DUP (?) TOP EQU LENGTH TAPN STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK SQRTSUB PROC FAR PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AL,X ;取数i MOV AH,0 MOV BX,OFFSET SQTAB ;BX←表首址 ADD BX,AX MOV AL,[BX] ;取i2并保存 MOV Y,AL RET SQRTSUB ENDP CODE ENDS END SQRTSUB 5.2 分支程序设计 分支结构是一种非常重要的程序结构,也是实现程序功能选择所必要的程序结构。 由于汇编语言需要用转移指令来实现分支结构,而转移指令肯定会破坏程序的结构,所以,编写清晰的分支结构是掌握该结构的重点。 计算机可根据不同条件进行逻辑判断,从而选择不同的程序流向。程序的流向是由CS和IP值决定的,当程序的转移仅在同一段内进行时,只需修改偏移地址IP的值;如果程序的转移是在不同段之间进行的,则段基址CS和偏移地址IP的值均需要修改。 5.2.1 转移指令 转移指令是汇编程序员经常要用到的一组指令。在高级语言中,时常有“尽量不要使用转移指令语句”的劝告。但是,在汇编语言程序中,不但要使用转移指令,而且还要灵活运用,因为指令系统中有大量的转移指令。 转移指令分为无条件转移指令和有条件转移指令。 无条件转移指令JMP 无条件转移指令JMP指令是从程序当前执行的地方无条件地转移到另一个地方执行。 无条件转移指令JMP JMP指令转移可以是短(short)转移(偏移量在[-128B,127B]之内)、近(near)转移(偏移量在[-32KB,32KB]之内)、远(far)转移(在不同的代码段之间转移)。 短转移和近转移都是段内转移,JMP指令只将目标指令位置处的偏移量赋值给指令指针寄存器IP,从而实现转移功能 远转移属于段间转移,JMP指令不仅会把目标指令位置处的偏移量赋值给指令指针寄存器,同时还会把目标指令所处的代码段的段地址赋值给当前代码段寄存器CS。 有条件转移指令 有条件转移指令是一组及其重要的转移指令,它根据标志寄存器中的一个(或多个)标志位来决定是否需要转移,这就为实现多功能程序提供了必要的手段 有条件转移指令的格式和类型 5.2.2 分支程序的结构 分支程序结构有两种形式:双分支结构和多分支结构。 分支程序设计要点 (1)

文档评论(0)

189****6140 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档