首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是大dword?

什么是大dword?
EN

Stack Overflow用户
提问于 2012-12-27 21:20:11
回答 1查看 2.2K关注 0票数 4

在这个代码部分中有哪些函数有短的和大的?大同长剑?

代码语言:javascript
复制
mov eax, ebx
cmp [ebp+var_1], 0
jz  short loc_413123
call sub_40341C
pop large dword ptr fs:0
add esp, 0Ch
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-29 22:17:21

短的

jz short loc_413123仅仅意味着这个跳转的偏移量(即距离)非常小,适合于一个字节,所以这个跳转被编译成两个简单的字节:

代码语言:javascript
复制
0x74 [1-byte-offset]

如果距离更大,编译器将不得不对跳转进行不同的编码,这将占用更多的内存:

代码语言:javascript
复制
0x0f 0x84 [4-byte-offset]

使用short,IDA只是简单地告诉您这个跳转使用的是哪种编码。

大型

pop large dword ptr fs:0是IDA提请您注意的一种方法,fs:0是一个远指针:一个常规偏移量(0),但是有一个段选择器(fs)。也就是说,large与数据的宽度(dword)无关,而是与地址(segment+offset)有关。然而,large并没有真正添加任何新的信息,这一行仅仅意味着pop dword ptr [fs],这可能是从不同反汇编程序获得的反汇编。

在读取反汇编时,您可以安全地忽略这两个关键字,而且在编写自己的程序集代码时,它们当然是不必要的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14061439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档