Que signifie «dword ptr»?

123

Quelqu'un pourrait-il expliquer ce que cela signifie? (Syntaxe Intel, x86, Windows)

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

Réponses:

119

La dword ptrpièce est appelée une directive de taille. Cette page les explique, mais il n'a pas été possible de créer un lien direct vers la bonne section.

Fondamentalement, cela signifie que "la taille de l'opérande cible est de 32 bits", donc ce sera au niveau du bit ET la valeur de 32 bits à l'adresse calculée en prenant le contenu du ebpregistre et en soustrayant quatre avec 0.

se détendre
la source
72
Le "d" dans "dword" signifie "double". Un mot est de 16 bits.
JeremyP
Pour plus de références, visitez ce lien
Alex Mathew
25
Pourquoi la PTRpièce est-elle nécessaire? Dword n'est-il pas suffisant pour encoder la taille? NASM n'utilise pas ptrAFAIK.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
1
La moyenne de @JeremyP Word change selon les processeurs. Après avoir lu cet article, pouvez-vous répéter que le mot est de 16 bits ou que vous ne définissez que le sens simple du mot qui signifie deux octets? 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 question est étiquetée "x86" donc nous parlons spécifiquement de l'architecture Intel x86, dans laquelle un mot a une largeur de 16 bits. Selon votre article, même le x86_64 a une taille de mot de 16 bits.
JeremyP
7

Considérez le chiffre inclus dans cette autre question . ebp-4est votre première variable locale et, vue comme un pointeur dword, c'est l'adresse d'un entier 32 bits qui doit être effacée. Peut-être que votre source commence par

Object x = null;
mico
la source
3

C'est une déclaration 32 bits. Si vous tapez en haut d'un fichier d'assemblage l'instruction [bits 32], vous n'avez pas besoin de taper DWORD PTR. Donc par exemple:

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