¿Podría alguien explicar lo que esto significa? (Intel Sintaxis, x86, Windows)¿Qué significa `dword ptr`?
and dword ptr [ebp-4], 0
¿Podría alguien explicar lo que esto significa? (Intel Sintaxis, x86, Windows)¿Qué significa `dword ptr`?
and dword ptr [ebp-4], 0
La parte dword ptr
se llama una directiva tamaño. This page los explica, pero no fue posible dirigir el enlace a la sección correcta.
Básicamente, esto significa "el tamaño del operando de destino es de 32 bits", por lo que esto en modo bit-y el valor de 32 bits en la dirección calcula tomando los contenidos del registro ebp
y restando cuatro con 0.
Considera the figure enclosed in this other question. ebp-4
es 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 su fuente empieza por
Object x = null;
Es una declaración de 32 bits. Si escribe en la parte superior de un archivo de ensamblaje la instrucción [bits 32], entonces no necesita escribir DWORD PTR. Por ejemplo:
[bits 32]
.
.
and [ebp-4], 0
La "d" en "dword" significa "doble". Una palabra es 16 bits. – JeremyP
Para obtener más información, visite este [enlace] (http://eli.thegreenplace.net/2010/10/21/64-bit-types-and-arithmetic-on-32-bit-cpus/) –
¿Por qué ' Se necesita la parte PTR'? ¿No es suficiente lo suficiente para codificar el tamaño? NASM no usa 'ptr' AFAIK. –