无条件转移jmp详细执行过程

本文探讨了无条件转移指令jmp在汇编语言中的应用,特别是无条件短转移。通过EBxx系列机器码解释了转移方向,并介绍了如何计算位移量,确保跳转后正确执行后续指令。举例说明了向后转移的情况,如 jmp 401005,该指令导致EIP加位移量后指向401005处的xor eax,eax指令。" 72773258,5591913,CentOS6.5安装Hive本地模式指南,"['大数据开发', 'Hadoop', 'hive', 'MySQL']
摘要由CSDN通过智能技术生成

无条件短转移机器码为EBxx,其中EB00~EB7F是向后转移(高址方向),EB80~EBFF是向前转移(低址方向),因为80~FF的二进制为1000 0000~1111 1111,高位为“1”代表负数。

转移指令的机器码 = “转移类别机器码” + “位移量”

位移量 = 目的地址 - 起始地址 - 跳转指令本身长度

跳转后执行EIP位于跳转指令下一行,这时应执行EIP + “位移量”处的指令,如下例:

向后转移:

汇编指令:

...

:401000 jmp 401005

...

:401005 xor eax,eax

...

内存中:

:00401000 EB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值