汇编源程序 第5章 分支与循环程序设计ppt课件.ppt

汇编源程序 第5章 分支与循环程序设计ppt课件.ppt

ID:59238267

大小:1.52 MB

页数:59页

时间:2020-09-22

汇编源程序    第5章 分支与循环程序设计ppt课件.ppt_第1页
汇编源程序    第5章 分支与循环程序设计ppt课件.ppt_第2页
汇编源程序    第5章 分支与循环程序设计ppt课件.ppt_第3页
汇编源程序    第5章 分支与循环程序设计ppt课件.ppt_第4页
汇编源程序    第5章 分支与循环程序设计ppt课件.ppt_第5页
资源描述:

《汇编源程序 第5章 分支与循环程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4.1.6CMP指令【指令格式】CMPd1,d2【功能】用操作数d1减去操作数d2,把运算的情况反映到条件标志位上,运算得到的差并不送到任何一个操作数中,即CMP指令并不改变两个操作数的值。【说明】(1)CMP指令专门用于两个数据的比较,数据本身可以是无符号数,也可以是带符号数。(2)CMP指令关于操作数寻址方式的要求与SUB指令完全相同。(3)CMP指令对各标志位的设定规则也与SUB指令相同。4.2跳转类指令4.2.1无条件跳转指令──JMP4.2.2条件跳转指令返回节目录4.2.1无条件跳转指令──JMP【指令格式】JMP标号【功能】让计算机转到标号所在处继续执行。通常情况下,标号

2、的定义与JMP指令应该在同一个段中,这种情况下的跳转称为段内跳转,只需要改变IP的值即可实现转移。标号定义的位置与JMP指令的位置之间没有先后限制,JMP指令既可以实现向前跳转,也可以用于向后跳转。程序中还可以多处使用JMP指令转到同一个标号。【例4.5】下面的程序段用来说明JMP指令的用法:JMPlabMOVAX,BXADDAX,CXlab:MOVDX,AX计算机本应该依照指令编写的次序逐条执行,但在执行到JMPlab这一行指令时,将修改IP的值,从而跳过下面的两行,直接转到lab所在的那一行去执行“MOVDX,AX”指令。……4.2.2条件跳转指令4.2.2.1以单个标志位为条件的

3、跳转指令1.JZ指令(JumpifZFSet)【指令格式】JZ标号【功能】如果ZF标志位的值是1,则转到标号所在处继续执行,否则按正常顺序执行下一条指令。2.JNZ指令(JumpifZFNotSet)【指令格式】JNZ标号【功能】如果ZF标志位的值是0,则转到标号所在处继续执行,否则按正常顺序执行下一条指令。3.JC指令(JumpifCFSet)【指令格式】JC标号【功能】如果CF标志位的值是1,则转到标号所在处继续执行,否则按正常顺序执行下一条指令。4.JNC指令(JumpifCFNotSet)【指令格式】JNC标号【功能】如果CF标志位的值是0,则转到标号所在处继续执行,否则按正常

4、顺序执行下一条指令。5.JS指令(JumpifSFSet)【指令格式】JS标号【功能】如果SF标志位的值是1,则转到标号所在处继续执行,否则按正常顺序执行下一条指令。6.JNS指令(JumpifSFNotSet)【指令格式】JNS标号【功能】如果SF标志位的值是0,则转到标号所在处继续执行,否则按正常顺序执行下一条指令。7.JO指令(JumpifOFSet)【指令格式】JO标号【功能】如果OF标志位的值是1,则转到标号所在处继续执行,否则按正常顺序执行下一条指令。8.JNO指令(JumpifOFNotSet)【指令格式】JNO标号【功能】如果OF标志位的值是0,则转到标号所在处继续执行

5、,否则按正常顺序执行下一条指令。4.2.2.2相等和不等比较的跳转1.JE指令──等于跳转(JumpifEqual)【指令格式】JE标号【功能】如果ZF为1,则转到标号处继续执行,否则按正常顺序执行下一条指令。比较两个数据是否相等,通常先用CMP指令把两个操作数相减,用计算结果设置标志位,然后用JE指令根据ZF的值决定是否跳转。若ZF为1表示相减结果为0,即两数相等,则转移。所以JE与JZ实质上是同一条指令,并且汇编程序翻译成机器码后的结果也是相同的,是同一机器指令的两种不同的汇编语言写法。2.JNE指令──不等于跳转(JumpifNotEqual)【指令格式】JNE标号【功能】如果Z

6、F为0,则转到标号处继续执行,否则按正常顺序执行下一条指令。这是JNZ指令的另一种写法。4.2.2.3无符号数大小比较的跳转1.JA指令──无符号数大于跳转(JumpifAbove)【指令格式】JA标号【功能】如果ZF和CF都是0,则转到标号处继续执行,否则按正常顺序执行下一条指令。对于两个无符号数d1和d2,当“CMPd1,d2”指令设置了标志位后,如果ZF和CF都是0,表示两数相减的结果不为0,最高位也不需要向前借位,则可判定d1>d2。与JA指令完全等同的写法是JNBE(JumpifNotBelownorEqual)。2.JNA指令──无符号数小于或等于跳转(JumpifNotA

7、bove)【指令格式】JNA标号【功能】如果ZF为1,或者CF为1,则转到标号处继续执行,否则按正常顺序执行下一条指令。用“CMPd1,d2”指令设置标志位之后,ZF为1表示d1=d2,而CF为1表示把两个数作无符号数看待时,两数相减最高位向前有借位,所以可判定d1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。