- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序控制指令的
3.3.5 程序控制指令;表4-6 控制转移类指令;续表(2);续表(3);续表(4);转移指令的实质:
改变IP(或者CS和IP)的内容。
对标志位flags的影响:
所有转移指令不会影响标志位flags。
分类:
分为无条件转移和条件转移两种。;(1) 无条件转移指令 - JMP
本指令无条件转移到指定的目标地址, 以执行从该地址开始的程序段。根据设置CS、IP的方法,JMP指令可实现短\近\远距离跳转, 指令分成4种情况。
① 段内直接转移: JMP disp
指令中给出的8/16位的位移量加到IP, CS保持不变。
② 段内间接转移: JMP reg / mem
reg/mem中的16位偏移地址送IP, CS保持不变。
③ 段间直接转移 JMP segment : offset
指令中给出的16位的段和16位的偏移地址送到CS和IP。
④ 段间间接转移 JMP mem32
mem32中的16位的段和16位的偏移地址送到CS和IP。; 转移的目标地址由指令直接给出。指令中给出的目标地址实际上是一个相对于IP的位移量:
JMP disp ;
位移量 转移范围 汇编语言中格式
8位 -128~+127 JMP SHORT OPRD; 短距离
16位 -32768~+32767 JMP NEAR PTR OPRD 或 OPRD
; 近距离
注意: disp的助记符写为新IP’,
而disp的机器码为位移量d(新IP’=原IP+位移量d)
例:JMP 0120H ;直接转向0120H(缺省为NEAR)
JMP SHORT LP ;转向LP
JMP NEAR PTR BBB;转向BBB
由于是段内转移,故转移后CS内容保持不变;无条件段内转移;②段内间接转移
转移的目标地址由寄存器或存储单元的内容给出。
例1:JMP SI ; 近距离
若(SI)=1200H,则指令执行后,(IP)=1200H,于是转向代码段的偏移地址1200H处开始执行。
注意:目标地址以段内偏移的形式给出,而不是相对于IP的位移量,所以它是一个16位的操作数。;无条件段内转移; 例2:JMP [BX+DI]
设指令执行前:
(DS)=3000H,(BX)=1300H,
(DI)=1200H,(32500H)=2350H;
则指令执行后:(IP)=2350H
在汇编语言中,段内间接寻址通常写成:
JMP WORD PTR[BX+DI]
表示所取得的目标地址是一个字。;③段间直接转移
在指令中直接给出要转移到的目的段地址和偏移地址。
例:JMP 2000H:1000H ;远距离
执行时,(IP)←1000H,(CS)←2000H
注意:直接地址为符号地址时,段间直接转移指令中的符号地址前应加操作符FAR PTR。
例:JMP FAR PTR far_label ;远距离
其中的far_label为远类型的标号。;无条件段间转移; 转移的目的地址(段和偏移)在两个相邻的字存储单元中。例如:
JMP DWORD PTR[SI] ; 远距离
设指令执行前:(DS)=4000H,(SI)=1212H,
(41212H)=1000H,(41214H)=4A00H
则指令执行后:(IP)=1000H,(CS)=4A00H
于是转到4B000H处开始执行指令。
例中的DWORD PTR表示转移地址是一个双字。;无条件段间转移;4000; 条件转移指令可实现程序的条件分支。
条件转移指令根据标志位的状态来决定是
否进行分支转移。
格式:JXX label;xx为条件名称缩写
指令的转移范围为-128~+127字节(短跳转)。
主要的条件转移指令参见p142表3-7。
;① 根据单个标志位设置的条件转移指令
JB/JC ;低于,或CF=1, 则转移
JNB/JNC/JAE ;不低于,或CF=0,高于或等于, 则转移
JP/JPE ;奇偶标志PF=1(偶),
文档评论(0)