- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.无条件转移指令 (1)无条件段内直接转移指令 格式:JMP 标号 功能:无条件地转移到标号地址处。 例如: NEXT : MOV AX , CX …… JMP NEXT ;转NEXT处 …… JMP OVER ;转OVER处 …… OVER : MOV AX , 1 编译器根据标号与IP的相对位置,将指令翻译位跳转一定的位移量,即EBXX或EBXXX。 其中EB表示跳转,而XX或XXXX则表示要跳转的位移量。 当翻译成EBXX时,表示跳转位移为8位数,此时的跳转称为短转移。 短转移的书写格式为: JMP SHORT 标号 执行的操作: (IP)- (IP) + 8位位移量 例如: …… JMP SHORT HELLO …… HELLO: MOV AL ,3 …… 按同样的道理,当翻译成EBXXXX时,表示跳转位移为16位数,此时的跳转为近转移。 短转移的书写格式为: JMP NEAR PTR 标号 执行的操作: (IP)- (IP) + 16位位移量 对于JMP SHORT OPR和JMP NEAR PTR OPR,除翻译后多一个字节和少一个字节外并无多少实质的差别,因此对于段内直接转移,编程时可直接写为: JMP 标号 (2)无条件段内间接转移 格式: JMP WORD PTR OPRD 功能:无条件地转移到由操作数OPRD的内容指定的去处。 OPRD可以是通用寄存器,也可以是字存储单元。 例: JMP WORD PTR [1234H] 偏移地址为1234的内容送IP (3)无条件段间直接(远)转移指令 格式:JMP FAR PTR 标号 功能:无条件地转移到标号所对应的地址处。 标号前的符号“FAR PTR”向汇编程序说明这是段间转移。 (CS) = 标号所在段的段地址; (IP) = 标号在段中的偏移地址。 FAR PTR指名了用标号的段地址和偏移地址去修改CS和IP. 例: C1 SEGMENT …… JMP FAR PTR NEXT_PROG …… C1 ENDS C2 SEGMENT …… NEXT_PROG: …… C2 ENDS 一般不区分JMP SHORT NEXT与JMP NEAR PTR NEXT,因为把JMP SHORT NEXT处理为JMP NEAR PTR NEXT只是增加了机器指令的长度,不会使执行结果出现错误。因此,程序中只区分段间转移和段内转移。即, 出现段间转移时,使用JMP FAR PTR NEXT,否则,使用JMP NEXT。 (4)无条件段间间接转移指令 格式:JMP DWORD PTR OPRD 功能:无条件地转移到由操作数OPRD的内容指定的去处。 OPRD必须是双字存储单元。 例如: JMP DWORD PTR [1234H] ;双字存储单元的低字内容送IP ;双字存储单元的高字内容送CS 注意段内间接转移和段间间接转移的区别:字和双字。 2.条件转移指令 8086/8088提供了大量的条件转移指令,它们根据某标志位或某些标志位的逻辑运算来判别条件是否成立。如果成立,则转移。否则继续顺序执行。 所有条件转移都只是段内转移;条件转移不影响标志。 通常,在条件转移指令前,总有用于条件判别的有关指令。 例:下面的程序测试AX的低四位是否全为0,如果是,那么使CX=0,否则使CX=-1。 MOV CX , -1 TEST AX , 0FH ;全为0是,ZF=1 JNZ NZERO ;ZF=0则转移 MOV CX , 0 NZERO : …… 记忆技巧: 1.基于单个标志位跳转指令可直接根据标志名称记忆:JZ,JO 2.有符号数间的次序关系称为: 大于(G)、等于(E)、小于(L); 3.无符号数间的次序关系称为: 高于(A)、等于(E)、低于(B)。 对于有符号数和无符号数,使用时请注意区分。 例:实现两个无符号数(设在AX和BX中)的比较,把较大的数放在AX中,把较小的数放在BX中。 CMP AX , BX JAE OK ;无符号数比较大小转移 XCHG AX , BX OK : …… 如果要比较的两个数是有符号数,则可用下面程序片段: CMP AX , BX JGE OK ;有符号数之间比较 XCHG AX , BX OK : …… 例如:设X、Y均为存放在X单元和Y单元中的16位操作数,先判断X50否,如满足条件则转移到TOO-HIGH去执行,否则做X – Y,如溢出则转移到OVER去执行,否
文档评论(0)