社区
汇编语言
帖子详情
E9 跳转指令的用法?
cs100504
2010-05-19 08:00:56
E9 跳转指令的用法?
比如:从 0x11223344 E9 AABBCCDD 跳到目标 0xEEDDCCBB
AABBCCDD 怎么计算?
谢谢。
...全文
561
6
打赏
收藏
E9 跳转指令的用法?
E9 跳转指令的用法? 比如:从 0x11223344 E9 AABBCCDD 跳到目标 0xEEDDCCBB AABBCCDD 怎么计算? 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cs100504
2010-05-19
打赏
举报
回复
[Quote=引用 4 楼 redher 的回复:]
跳转指令用的都是偏移地址.
不然,程序如果加载的位置变了. 就不能正确跳转了 .
建议搂住还是从基础开始.
[/Quote]
EA
44332211
08000000
绝对跳转 to 0x11223344
dididu1515
2010-05-19
打赏
举报
回复
你这是32位汇编,000000x的值转换成汇编编码的规律:
jmp 0002H
IP1=004ED879H
IP2=00000002H
IP2-(IP1+本句指令字节数)=2-(4ED879H+5)=0FFB12784H
Jmp 0040H
IP1=004ED879H
IP2=40H
IP2-(IP1+本句指令)=40-(4ED879H+5)=FFB127C2H
汇编里的数次序要反过来:
E9 C227B1FF
以上只是远跳转,近跳转"本句指令字节数"会缩短。
参考: 汇编中的JMP后面的值也就是E9 XXXX怎样计算的_百度知道
http://zhidao.baidu.com/question/105950930.html?fr=qrl&cid=865&index=5
redher
2010-05-19
打赏
举报
回复
跳转指令用的都是偏移地址.
不然,程序如果加载的位置变了. 就不能正确跳转了 .
建议搂住还是从基础开始.
cklx0401
2010-05-19
打赏
举报
回复
你直接用机器码~?不是在搞反汇编破解吧。
zara
2010-05-19
打赏
举报
回复
看指令的说明啊。AABBCCDD 就是地址偏移,是目标地址和该调用指令下一条指令(即 JMP 指令正常返回的地址)间的差。
“0x11223344 E9 AABBCCDD”,该指令为 5 字节,则下一条指令的地址就是 0x11223349了。所以,偏移 AABBCCDD = 0xEEDDCCBB - 0x11223349
pandazhong
2010-05-19
打赏
举报
回复
只知道JMP,不知道E9也能跳转,接分。
E9
指令
地址计算方法
jmp:相对
跳转
指令
计算公式:
E9
后面的地址 = 目标地址 - 当前地址 - 5 在编写嵌入式补丁程序的时候一般情况下最后一条
指令
便是
E9
指令
,实际计算时可借助windows自带的计算器工具进行16进制计算: 0x401B5F ... //
E9
跳转
的目标地址 ... 0x407000
E9
5A AB FF FF 上面的具体计算: 0x401B5F - 0x4...
汇编语言
21,458
社区成员
41,603
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章