常用转移指令总结
一,jmp指令(无条件转移指令)
1,指令格式
①段间转移(远转移):
- jmp far ptr+标号
②段内短转移:
- jmp short +标号(8位的位移)
③段内近转移
- jmp near ptr+标号(16位位移)
2,jmp寄存器
- jmp bx(16位位移)
3,jmp内存单元(表示要跳转到的地址)
①段内转移:jmp word ptr 内存单元地址
- 例:jmp word ptr [bx]
②段间转移:jmp dword ptr 内存单元地址
- 例:jmp dword ptr [bx]
二,jcxz指令(有条件转移指令)
1,指令格式:
jcxz +标号
2,功能:
- 如果(cx)=0,则转移到标号出执行
- 如果(cx)≠0,则什么也不做(程序继续向下执行)
- cx=0时,(IP)=(IP)+8位位移
3,jcxz是有条件转移的指令:
- 所有的有条件转移指令都是短指令
- 对IP修改范围都为-128~127
- 对应机器码中包含位移,而不是目的地址
三,loop指令(循环指令)
1,格式:loop 标号
2,作用:对cx寄存器内的值进行-1操作。可以用作循环控制
3,示例:
mov cx,10 ;数字代表循环中次数
标号:
执行体
loop 标号
mov ah,4ch ;程序结束时标志
int 21
以上代码表示循环十次