首页
社区
课程
招聘
[旧帖] [求助]我想问一下,汇编指令中操作数地址长度的问题 0.00雪花
发表于: 2011-4-13 23:38 1829

[旧帖] [求助]我想问一下,汇编指令中操作数地址长度的问题 0.00雪花

2011-4-13 23:38
1829
我想问一下,汇编指令中操作数地址长度是如何计算的
操作数地址长度是不是固定长度的,如果不是固定长度那应该如何计算???
就比如说jmp XXXX,每次XXXX不同,占用的内存位数也不同,所以想得到详解

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
jmp分为0xE9,0XEA,0xEB
E9 XX XX XX XX
是五个字节

EA XX XX XX XX XX XX
七个字节

EB XX
两个字节
2011-4-14 00:29
0
雪    币: 92
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
jmp分为0xE9,0XEA,0xEB
那为什么会分为0xE9,0XEA,0xEB呢???
什么时候是0xE9,0XEA,0xEB呢??
2011-4-14 09:37
0
雪    币: 37
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个问题问的好。虽然还没学到JMP,但先了解下也不错
2011-4-14 12:33
0
雪    币: 50
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
直接的jmp分3种
Short Jump(短跳转)机器码 EB rel8
只能跳转到256字节的范围内
Near Jump(近跳转)机器码 E9 rel16/32
可跳至同一个段的范围内的地址
Far Jump(远跳转)机器码EA ptr 16:16/32
可跳至任意地址,使用48位/32位全指针

要注意的是,短跳转和近跳转指令中包含的操作数都是相对于(E)IP的偏移,而远跳转指令中包含的是目标的绝对地址,所以短/近跳转会出现跳至同一目标的指令机器码不同,不仅会不同,而且应该不同。而远跳转中包含的是绝对地址,因此转移到同一地址的指令机器码相同。

看雪以前的一个帖子:http://bbs.pediy.com/showthread.php?t=30746
2011-4-14 12:50
0
雪    币: 92
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
在这里谢谢各位的大力支持,经过上面几位的指点,又查了点资料,在这里补充一下
--------------------------------------
还有一个寄存器的跳转,不知道种说法对不
jmp eax
FF XX;两个字节

还有一个就是远跳转

EA XXXXXXXXXXXX
去掉操作码,还剩6个字节,但是一个地址是4个字节,还有2字节是段地址
也就是说远跳转是 EA+段地址+段便宜量
--------------------------------------
如果以上有何错误望各位高手提醒,谢谢
2011-4-14 16:33
0
游客
登录 | 注册 方可回帖
返回
//