¿Qué significa "dword ptr"?

123

¿Alguien podría explicar qué significa esto? (Sintaxis Intel, x86, Windows)

and     dword ptr [ebp-4], 0
小 太郎
fuente

Respuestas:

119

La dword ptrpieza se denomina directiva de tamaño. Esta página los explica, pero no fue posible establecer un vínculo directo a la sección correcta.

Básicamente, significa "el tamaño del operando de destino es de 32 bits", por lo que esto será bit a bit Y el valor de 32 bits en la dirección calculada tomando el contenido del ebpregistro y restando cuatro con 0.

relajarse
fuente
72
La "d" en "dword" significa "doble". Una palabra tiene 16 bits.
JeremyP
Para obtener más referencia, visite este enlace
Alex Mathew
25
¿Por qué se PTRnecesita la pieza? ¿No es suficiente dword para codificar el tamaño? NASM no usa ptrAFAIK.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
1
@JeremyP Word significa está cambiando según los procesadores. Después de leer este artículo, ¿puedes volver a decir que la palabra tiene 16 bits o solo estás definiendo el significado simple de la palabra que significa dos bytes? 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
6
@ uzay95 La pregunta está etiquetada como "x86", por lo que estamos hablando específicamente de la arquitectura Intel x86, en la que una palabra tiene 16 bits de ancho. Según su artículo, incluso x86_64 tiene un tamaño de palabra de 16 bits.
JeremyP
7

Considere la figura incluida en esta otra pregunta . ebp-4es su primera variable local y, visto como un puntero dword, es la dirección de un entero de 32 bits que debe borrarse. Tal vez tu fuente comience con

Object x = null;
mico
fuente
3

Es una declaración de 32 bits. Si escribe en la parte superior de un archivo de ensamblaje la declaración [bits 32], entonces no necesita escribir DWORD PTR. Así por ejemplo:

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