首页
社区
课程
招聘
[旧帖] [求助]如何知道两条汇编指令是段间,还是段内 0.00雪花
发表于: 2011-4-16 00:59 1523

[旧帖] [求助]如何知道两条汇编指令是段间,还是段内 0.00雪花

2011-4-16 00:59
1523
我用JMP指令的时候,我如何知道要跳到另一条指令的地方,是用段内跳转,还是用段间跳转的机器码???

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 213
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
16位汇编?
看跳转的目的地距本jmp指令(其实是内存位置紧跟在jmp指令后面的那条指令,当jmp执行时ip已指向它)的偏移是否已超过了jmp段内跳转能跳转的最大偏移;若未超过,则可以用jmp段内跳转
当然段间跳转总是可以的,即使目的地是在同一个段范围内
2011-4-16 01:36
0
雪    币: 92
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
是32位汇编,那一个段的范围应该是0xFFFFFFFF这个么???
但是我看OD中地址都是用xxxxxxxx表示的,那是不是就只有一个段呢???
2011-4-16 12:08
0
雪    币: 38
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
16类汇编有4个段寄存器

段寄存器:CS,DS,SS,ES
  CS(Code Segment):代码段寄存器;
  DS(Data Segment):数据段寄存器;
  SS(Stack Segment):堆栈段寄存器;
  ES(Extra Segment):附加段寄存器。

例如 12345678  78654321

段寄存器保存 1234,7865

如果DS的值是 1234,在1234 0000跳就是段内跳,往 7865 4321跳就是长跳。
如果DS的值是 7865,在1234 0000跳就是长跳,往 7865 4321跳就是段内跳。

建议看看王爽的汇编语言一书。
2011-4-16 15:09
0
游客
登录 | 注册 方可回帖
返回
//