标签:loop ip) 其他 转移指令 种类 jmp 就是 格式 类型
在8086CPU中,转移指令可分为如下几类
在此,只先讨论无条件转移中的jmp,其他东西以后再更
jmp为无条件转移指令,可以只修改IP,也可以同时修改CS和IP
所谓依据位移呢,就是根据转移指令到要转移的目的地址之间相差的字节数来进行转移的,相差的字节数由编译器进行计算给出,在生成的机器指令中只包含相差的字节数,不包含目的地址,这样会是的程序更加的灵活
这种格式的jmp指令实现的是段内短转移,他对IP的修改范围为-128~127,超过这个范围会报错
使用如下面的例子
codesg segment
start: mov ax,0
jmp short s
add ax,1
s: inc ax
codesg ends
end start
参照书上的总结就是:jmp short 标号 的功能为:(IP)=(IP)+8位位移
它和jmp short 标号的功能相似,不过是实现的段内近转移
它实现的功能为:(IP)=(IP)+ 16为位移,类似上面
前面的jmp指令只能进行段间的转移,但是我们有时候需要转移的“更远”,这时候就需要这种类型的指令了
此指令实现的是段间转移,又称为远转移功能如下
例如:
codesg segment
start: mov ax,0
mov bx,0
jmp far ptr s
db 256 dup (0) ;这里用来占空
s: add ax,1
inc ax
codesg ends
end start
功能:(IP)=(16位reg)
转移地址在内存中的jmp指令有两种格式:段内转移和段间转移
功能:
例如:
mov ax,0123H
mov ds:[0],ax
jmp word ptr ds:[0]
功能:
例如:
mov ax,0123H
mov ds:[0],ax
mov word ptr ds:[2],0
jmp dword ptr ds:[0]
本文总结自王爽的《汇编语言》,如有错误欢迎指正
标签:loop ip) 其他 转移指令 种类 jmp 就是 格式 类型
原文地址:https://www.cnblogs.com/tcctw/p/10357377.html