有人能解释一下这是什么意思吗?(Intel语法,x86,Windows)
and dword ptr [ebp-4], 0
dword ptr
部分被称为大小指令。 这个页面 解释了它们,但无法直接链接到正确的章节。
基本上,它的意思是“目标操作数的大小为32位”,所以这将对在通过将ebp
寄存器的内容减去四并加零计算得到的地址处的32位值进行按位与运算。
PTR
部分?使用 dword 不足以编码大小吗?据我所知,NASM 不使用 ptr
。 - Ciro Santilli OurBigBook.com这是一个32位声明。如果您在汇编文件的顶部键入语句[bits 32],那么您就不需要键入DWORD PTR。例如:
[bits 32]
.
.
and [ebp-4], 0
mov dword ptr [ebp-4], 0
。使用and
可以节省 3 字节的机器码大小,但性能会受到影响(针对内存目标进行加载/AND/存储,而不仅仅是纯粹的存储,因此会牺牲一些性能)。 - Peter Cordes