什么是大dword?

时间:2012-12-27 21:20:11

标签: assembly types x86 ida dword

此代码部分中有哪些函数 short large ? large与 long dword 相同?

mov eax, ebx
cmp [ebp+var_1], 0
jz  short loc_413123
call sub_40341C
pop large dword ptr fs:0
add esp, 0Ch

1 个答案:

答案 0 :(得分:3)

jz short loc_413123仅仅意味着此跳转的偏移量(即距离)非常小,以至于它适合单个字节,因此此跳转已编译为两个简单的字节:

0x74 [1-byte-offset]

如果距离较大,编译器必须以不同方式对跳转进行编码,这将占用更多内存:

0x0f 0x84 [4-byte-offset]

使用short,IDA Pro只是告诉您此跳转使用的编码类型。

pop large dword ptr fs:0 IDA提醒您注意fs:0far pointer:常规偏移(0),但有一个段选择器fs })。即large数据(dword)的宽度无关,但与地址(段+偏移)无关。但是,large并没有真正添加任何新信息,该行仅仅意味着pop dword ptr [fs],这可能是您从其他反汇编程序获得的反汇编。


在阅读反汇编时,您可以放心地忽略这两个关键字,在编写自己的汇编代码时,这些关键字当然不是必需的。