`dword ptr'是什么意思?

小太郎*_*小太郎 111 x86 assembly pointers dword

有人能解释这意味着什么吗?(英特尔语法,x86,Windows)

and     dword ptr [ebp-4], 0
Run Code Online (Sandbox Code Playgroud)

unw*_*ind 108

dword ptr部件称为尺寸指令.此页面解释了它们,但无法直接链接到正确的部分.

基本上,它意味着"目标操作数的大小是32位",因此这将通过获取ebp寄存器的内容并用0减去4 来计算地址处的32位值.

  • "dword"中的"d"代表"double".一个字是16位. (65认同)
  • 为什么需要'PTR`部分?是不是dword足以编码大小?NASM不使用`ptr` AFAIK. (21认同)
  • @ uzay95这个问题被标记为"x86",所以我们正在谈论**关于英特尔x86架构,其中一个字是16位宽.根据你的文章,即使x86_64的字大小为16位. (6认同)
  • @CiroSantilli新疆再教育营六四事件法轮功郝海东 你知道为什么需要“PTR”了吗? (2认同)

mic*_*ico 7

考虑另一个问题中的数字. ebp-4是您的第一个局部变量,并且,作为双指针,它是必须清除的32位整数的地址.也许你的来源开始

Object x = null;
Run Code Online (Sandbox Code Playgroud)


小智 7

这是一个32位声明。如果您在汇编文件的顶部键入语句 [位 32],则无需键入 DWORD PTR。例如:

[bits 32]
.
.
and  [ebp-4], 0
Run Code Online (Sandbox Code Playgroud)