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

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,退出循环;

转载于:https://www.cnblogs.com/python_newbie/archive/2010/09/27/1837099.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值