转移指令的原理
转移指令:可以修改IP,或同时修改CS和IP的指令统称为转移指令。
即可以控制CPU执行内存中某处代码的指令
8086CPU的转移行为有以下分类
- 段内转移:只修改IP中的内容
- 段间转移:同时修改CS和IP中的内容
段内转移可以分为
- 短转移:IP的修改范围为-128~127
- 近转移:IP的修改范围为-32768~32767
操作符offset
功能:取得标号的偏移地址
例如:mov ax,offset start
即将start标号的偏移地址送入ax中
jmp指令
依据位移进行的jmp指令
jmp short 标号
表示转到标号处指令指令
short
表示短转移,标号
指代码段中的标号
该jmp指令可实现段内短转移,对IP的修改范围为**-128~127**
jmp short 标号
指令的本质:
- (ip)=(ip)+位移
- 位移=标号处地址-jmp指令后的第一个字节的地址
- short表明此处的位移为8位位移,即范围为-128~127
- 8位位移由编译程序在编译时算出
jmp near ptr 标号