您的位置:首页 > 其它

汇编语言复习摘要九——转移指令的原理

2010-09-27 21:03 309 查看
1. 可以修改IP,或者同时修改CS和IP的指令称为转移指令。有两种类型转移:

1)只修改IP是段内转移,如:jmp ax

2)修改CS和IP是段间转移,如:jmp 1000:0

2. 操作符offset:offset是取得标号的偏移地址,例如:

start: mov ax, offset start  ; equal to : mov ax, 0

3. jmp称为无条件转移,可以只修改IP,也可以同时修改CS和IP:

1)jmp的原理:依据位移进行转移的。CPU在执行jmp指令的时候并不需要知道转移的目的地址,因为CPU知道的转移的偏移地址,就是jmp xxx这条指令地址和标号xxx之间的偏移。

2)jmp short xxx / jmp far xxx:段内转移和段间转移,段内转移范围:-128~127。其他范围用段间转移。

4. 转移地址在内存中:

1)jmp word ptr 内存单元地址:也成为段内转移,如:

mov ax, 0123h

mov ds:[0], ax

jmp word ptr ds:[0]

2)jmp dword ptr 内存单元地址:也称为段间转移,如:

mov ax, 0123h

mov ds:[0], ax

mov word ptr ds:[2], 0

jmp dword ptr ds:[0]

5. jcxz:有条件转移指令,所有的有条件转移指令都是短转移。jcxz 格式为:

jcxz xxx (如果cx == 0, 执行转移), 所以jcxz相当于:jmp if cx equal to zero,如果cx不等于,什么都不做;

6. loop: 循环指令,所有循环指令都是短转移。这个我们之前就见过了,cx等于0,退出循环;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: