第3章节汇编程序的的设计方法.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章节汇编程序的的设计方法

第三章 汇编程序的设计方法 §3-1 顺序程序设计 一、乘法指令 1、无符号数乘法指令 MUL 格式:MUL 源(mem、reg) 功能:累加器(AL / AX)内容与源操作数相乘,结果存 于AX / DX+AX。 2、有符号数乘法指令 IMUL 说明:除了对象是有符号数,其余思路、格式等与MUL相 同。 例:计算AL=FEH,CL=11H的积。 MUL CL IMUL CL 注:运算结果影响CF、OF。 CF=OF=0,说明积的高半部分是符号扩展; CF=OF=1,说明积的高半部分有有效数据; 另:同样两个数,用MUL、IMUL指令后,运算结果不同。 ∴无符号数用MUL ,有符号数用IMUL 看书例P81 二、除法指令 看书图,对比乘法指令学习。 三、扩展指令 1、字节转换为字 CBW 功能:按AL的符号位扩展到整个AH中。 字节除法之前,用该指令产生双字节被除数。 例:MOV AL,24H CBW 例:MOV AL,84H CBW 规则:当AL< 80H时,AH=00H AL≥ 80H时,AH=FFH 2、字转换为双字 CWD 功能:按AX的符号位扩展到整个DX中。 字除法之前,用该指令产生双字被除数。 规则:当AX< 8000H时,DX=0000H AX≥ 8000H时,DX=FFFFH 四、综合程序举例 看书P84 例 §3-2 分支程序设计 分支程序:根据不同条件转向不同程序段执行的结构。 转移指令 一、无条件转移指令 JMP 1、直接转移指令 (1) 段内直接转移 格式:JMP 标号 说明:标号——也称符号地址,它表示转移的目的地。 例:JMP 2500H (2) 段间直接转移 格式: 功能:将指令操作码后连续两个字作为立即数,用来修改CS:IP的内容,然后转向新的CS:IP指向的地址。 例:JMP 8000H:1200H 2、间接转移指令 (1) 段内间接转移 说明:转移地址为指令指定的16位reg或mem,可采用各种寻址方式。 格式:JMP 目标 例:JMP BX JMP WORD PTR[ BX+DI ] (2) 段间间接转移 例:JMP DWORD PTR[ BX ] 功能:转向[ BX ]指向的32位存储器地址,将连续4个单元的内容低字送IP,高字送CS。,程序转向新的CS:IP指向的单元存储的指令继续执行。 总结: 区分段内段间:看指令中给出的地址是几个 一个地址(16位)—— 段内 二个地址(32位)—— 段间 区分直接间接:看指令中的地址是直接给出(立 即数/标号),还是间接放在寄存 器或存储器中。 二、条件转移指令 格式:Jcond OPRD 功能:当满足一定的条件时,转移到指定的地址,否则,将顺序执行下条指令。 说明:当条件cond成立,(IP)+偏移地址 → IP 当条件cond不成立,(IP)+2 → IP 所有条件转移指令都是直接寻址方式的短转移。 1、简单的条件转移指令 仅根据一个可测试标志位实现转移的指令。 注:G——大于 L —— 小于 E —— 等于 N ——不 A —— 高于 B ——低于 2、无符号数条件转移指令 3、符号数条件转移指令 三、分支程序举例 看P96例3.7 画出程序流程图 §3-3 循环程序设计 一、基本结构 循环一般由4部分构成: 1、循环初态(初始化 / 准备) 循环工作部分初态 循环结束条件初态 2、循环体:就是要求重复执行的程序段部分,是循环程序的主体。 3、循环的修改:修改结束条件。 常见的就是计数的,当循环了一定次数后,就结束循环,在微机中,常用一个内部寄存器,作为计数器,通常给这个计数器赋予循环次数初值,每循环一次令其减1,当计数器

您可能关注的文档

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档