3.3.5程序控制指令 控制转移指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令
1 3.3.5 程序控制指令 控制转移指令分为: –转移指令 –循环控制指令 –调用和返回指令 –中断指令
1.转移指令 转移指令的实质:改变IP(或CS的内容 >所有转移指令不会影响标志位 分为无条件转移和条件转移两种
2 ➢转移指令的实质:改变IP(或CS)的内容。 ➢所有转移指令不会影响标志位。 ➢分为无条件转移和条件转移两种。 1.转移指令
(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和P ④段间间接转移 JMP mem32 mem32中的16位的段和16位的偏移地址送到CS和IP
3 (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的 位移量: 位移量转移范围 汇编语言中格式 8位-128~+127 JMP SHORT OPRD 16157-32768+32767 JMP NEAR PTR OPRD 例:JMP0120H 直接转向0120H JMP SHORT LP ;转向LP JMP NEAR PTR BBB;转向BBB 由于是段内转移,故转移后CS内容保持不变
4 转移的目标地址由指令直接给出。指令中 给出的目标地址实际上是一个相对于IP的 位移量: 位移量 转移范围 汇编语言中格式 8位 -128~+127 JMP SHORT OPRD 16位 -32768~+32767 JMP NEAR PTR OPRD 例:JMP 0120H ;直接转向0120H JMP SHORT LP ;转向LP JMP NEAR PTR BBB ;转向BBB 由于是段内转移,故转移后CS内容保持不变 ① 段内直接转移
②段内间接转移 转移的目标地址由寄存器或存储单元的内容 给出。 例1: JMP SI 若(SⅠ)=1200H,则指令执行后,(IP)=120OH, 于是转向代码段的偏移地址120OH处开始执行 注意:目标地址以段内偏移的形式给出,历不是相对于P的 位移量,所以它是一个16位的操作数
5 ②段内间接转移 转移的目标地址由寄存器或存储单元的内容 给出。 例1:JMP SI 若(SI)=1200H,则指令执行后,(IP)=1200H, 于是转向代码段的偏移地址1200H处开始执行。 注意:目标地址以段内偏移的形式给出,而不是相对于IP的 位移量,所以它是一个16位的操作数