8086 汇编 jmp 指令
功能:修改CS、IP的指令、可以通过改变CS、IP中的内容,来控制CPU要执行的目标指令。
背景:一般情况下指令是顺序地逐条执行的,而在实际中,常需要改变程序的执行流程。
转移指令,
- 可以控制CPU执行内存中某处代码的指令
- 可以修改IP,或同时修改CS和IP的指令
转移方式
jmp指令要给出两种信息:
- 转移的目的地址
- 转移的距离
-
- 段间转移(远转移): jmp 2000:1000
-
- 段内短转移: jmp short 标号 ; IP的修改范围为 -128~127,8位的位移
-
- 段内近转移: jmp near ptr 标号 ; IP的修改范围为 -32768~32767,16位的位移
远转移 far ptr
短转移 short
短转移:”jmp short 标号”
功能:(IP)=(IP)+8位位移
原理
(1)8位位移=”标号”处的地址-jmp指令后的第一个字节的地址;
(2)short指明此处的位移为8位位移;
(3)8位位移的范围为-128~127,用补码表示;
(4)8位位移由编译程序在编译时算出
近转移 near ptr
近转移:指令”jmp near ptr 标号”
功能: (IP)=(IP)+16位位移
原理
(1)16位位移=”标号”处的地址-jmp指令后的第一个字节的地址;
(2)near ptr指明此处的位移为16位位移,进行的是段内近转移;
(3)16位位移的范围为 -32769~32767,用补码表示;
(4)16位位移由编译程序在编译时算出。
转移内存单元地址
一、jmp word ptr
二、jmp dword ptr
案例
1、同时修改CS、IP的内容
; 功能:用指令中给出的段地址修改CS,偏移地址修改IP。
; 格式:jmp 段地址:偏移地址
jmp 2AE3:3
2、仅修改IP的内容
; 功能:用寄存器中的值修改IP
; jmp 某一合法寄存器
jmp ax (类似于 mov IP, ax)
3、代码中跳转行
; jmp 直接跳过 add ax,1 行到 inc ax
mov ax,0
jmp short s
add ax, 1
s: inc ax
Original: https://www.cnblogs.com/xiangsikai/p/12467932.html
Author: kevin.Xiang
Title: 8086汇编 jmp 指令
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554030/
转载文章受原作者版权保护。转载请注明原作者出处!