ChatGPT解决这个技术问题 Extra ChatGPT

`dword ptr` 是什么意思?

有人能解释一下这是什么意思吗? (英特尔语法、x86、Windows)

and     dword ptr [ebp-4], 0

E
Evan Carroll

dword ptr 部分称为大小指令。 This page 解释了它们,但无法直接链接到正确的部分。

基本上,它的意思是“目标操作数的大小是 32 位”,所以这将通过取 ebp 寄存器的内容并用 0 减去 4 来计算地址处的 32 位值。


“dword”中的“d”代表“double”。一个字是 16 位。
为什么需要 PTR 部分? dword 不足以编码大小吗? NASM 不使用 ptr AFAIK。
@JeremyP 单词的意思是根据处理器而变化。读完这篇文章后,你能再说一遍 word 是 16 位还是你只是定义 word 的简单含义,即两个字节? Modern processors, including embedded systems, usually have a word size of 8, 16, 24, 32, or 64 bits, while modern general purpose computers usually use 32 or 64 bits. en.wikipedia.org/wiki/Word_(computer_architecture)
@uzay95 这个问题被标记为“x86”,所以我们专门讨论的是英特尔 x86 架构,其中一个字是 16 位宽。根据您的文章,即使 x86_64 的字长为 16 位。
@CiroSantilli新疆再教育营六四事件法轮功郝海东你知道为什么需要PTR吗?
C
Community

考虑 the figure enclosed in this other questionebp-4 是您的第一个局部变量,并且被视为双字指针,它是必须清除的 32 位整数的地址。也许你的来源开始于

Object x = null;

L
L4m0r

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

[bits 32]
.
.
and  [ebp-4], 0