汇编指令无条件转移指令JMP
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[汇编指令]无条件转移指令JMP
2009-08-16 18:43
无条件转移指令JMP
指令格式:JMP OPRD
其中OPRD为转移的目的地址。程序转移到目的地址所指向的指令继续往下执行。
指令功能:JMP指令将无条件地控制程序转移到目的地址去执行。当目的地址仍在同一个代码段内,称为段内转移;当目标地址不在同一个代码段内,则称为段间转移。这两种情况都将产生不同的指令代码,以便能正确地生成目的地址,在段内转移时,指令只要能提供目的地址的段内偏移量即够了;而在段间转移时,指令应能提供目的地址的段地址及段内偏移地址值。
本组指令对标志位无影响。
<1>段内直接转移指令:JMP NEAR 标号
即:JMP NEAR 标号; (IP)<--disp16+(IP)
JMP SHORT 标号; (IP)<--disp8+(IP)
<2>段内间接转移指令:JMP OPRD
例如:JMP BP; 转向(SS):(BP)
JMP JNEAR[BX]; 转向(CS):(BX)+JNEAR
JMP WORD PTR[BX][DI]; 转向(CS):(BX)+(DI)
<3>段间直接转移指令:JMP FAR 标号
由于标号之前用FAR说明为远的属性,因而只能是一条段间转移指令。执行该指令时,将把标号所在的段的值送CS,将标号在所属段内的偏移量送IP,从而形成新的转移地址CS:IP
<4>段间间接转移指令:JMP OPRD其中的OPRD为存储器双字操作数。段间间接转移只能通过存储器操作数来实现。
例如:指令JMP DWORD PTR[BX],其操作数是一个双字类型的存储器操作数,它指向数据段DS,段内偏移为(BX)。从这个DS:BX开始的前两个字节中,存放了目标地址的段内偏移值,后两个字节中,存放了目标地址所在的新的段的段基址,分别将它们送至IP及CS,便形成了新的转移地址