第6章 程序控制指令.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 程序控制指令 罗文坚中国科大 计算机学院/~wjluo/mcps//~wjluo/mcps/ 本章内容转移指令控制汇编语言程序的流程过程中断概述机器控制及其他指令转移指令无条件转移指令JMP条件转移指令和条件设置指令条件转移指令:JA,JAE,JBE,……条件设置指令:SETA,SETAE,SETB,……循环指令LOOP,LOOPE,LOOPZ,LOOPNE,LOOPNZ转移类型与寻址方式段内转移:同一个段,只改变IP/EIP/RIPnear类型:16位,或32位,或64位偏移量(64位模式,实际是40位)short类型:8位(是near类型的一个特例)段间转移:不同段,改变CS: IP/EIP/RIPfar类型直接寻址:标号地址、立即数间接寻址:目标地址在REG或MEM中无条件转移指令JMPJMP指令:无条件将程序转移到指令指定的目的操作数。不记录返回地址信息。JMP指令可以实现段内转移和段间转移。JMP指令的操作数可以是立即数、通用寄存器、存储器地址。无条件转移指令JMP—段内转移操作数类型操作数的使用方式指令实例寻址方式直接间接标号1字节立即数加入IP/EIP/RIPJMP SHORT START2字节立即数JMP START14字节立即数JMP START2$立即数JMP $+2寄存器操作数送入IP/EIP/RIPJMP BX 或 JMP EBXJMP RBXJMP JTABLE[BX]存储器操作数START和START1、START2是转移目的标号(符号地址, NEAR类型)START指示的目的地址与当前地址间的转移范围在-128~+127个字节内。JTABLE是变量,类型为WORD(实模式),DWORD(保护模式)、QWORD(保护模式)。无条件转移指令JMP—段间转移操作数类型操作数的使用方式指令实例寻址方式直接间接标号4字节立即数送入CS和IP/EIP/RIPJMP START36字节立即数10字节立即数存储器操作数送入CS和IP/EIP/RIPJMP JTABLE1[BX]START3是标号,类型是FAR。JTABLE1是变量,类型为DWORD(实模式),FWORD(保护模式)、TWORD(64模式) 。无条件转移指令JMP对于位移量为8位的短转移,在标号前可以加说明符SHORT,也可以省略不写。对于位移量位16位的近转移,在标号前可以加说明符NEAR PTR,也可以省略不写。默认情况下,代码标号(标号后跟单个冒号)有一个局部域,对其所在过程内的语句可见,这阻止了跳转或循环语句转移到当前过程之外的标号。少数情况下,如果必须将控制转移到当前过程之外的标号处,标号必须被声明为全局的。声明全局标号,要在标号后跟两个冒号。Example1例,JMP指令的使用,段内跳转。 XOR BX, BXSTART: MOV AX, 1 ADD AX, BX JMP SHORT NEXT …… NEXT: MOV BX, AX JMP STARTExample2例,JMP指令的使用,远跳转。 EXTRN UP: FAR XOR BX, BXSTART: MOV AX, 1 ADD AX, BX …… JMP FAR PTR NEXT …… JMP UPExample3例,全局标号和局部标号的使用。MAIN PROC JMP L2 ;错误! L1:: …… ;全局标号 …… RETMAIN ENDPSUB PROC L2: …… ;局部标号 JMP L1 ;正确 RETSUB ENDP条件转移指令条件转移指令共计21条,这些指令根据上一条指令执行后处理器的状态标志,确定程序的执行方向。转移范围:对于16位微机,均为短转移:目的地址必须在当前段内,且与下一条指令的第一个字节的距离在-128~127内。对于80386以上微处理器,为近转移(?32KB范围)。在Pentium4的64位模式下,为近转移(?2GB范围)均为直接转移:使用标号地址,机器码中为相对位移量disp。条件转移指令不影响状态位。条件转移指令条件转移指令分为两类:直接标志转移:这类指令在助记符中直接给出标志状态的测试条件,如jc、jnc、jz、jnz。间接标志转移:这类指令在助记符中不直接给出标志状态的测试条件,但仍以某一个或某几个标志的状态作为测试条件。无符号数:JA:高于/不低于等于,JB:低于/不高于等于,…有符号数:JG:大于/不小于等于,JL:小于/不大于等于,…条件转移指令单标志位助记符测试条件JAE/JNBCF=0JB/JNAECF=1JCCF=1JNCCF=0JE/JZZF=1JNE/JNZZF=0JNOOF=0JOOF=1JNP/JPOPF=0JP/JPEPF=1JNSSF=0JSSF=1多标志位,无符号数助

文档评论(0)

1234554321 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档