Könnte jemand erklären, was das bedeutet? (Intel Syntax, x86, Windows)
and dword ptr [ebp-4], 0
Das dword ptr
Teil heißt eine Größenanweisung. Diese Seite erklärt sie, aber es war nicht möglich, direkt auf den richtigen Abschnitt zu verlinken.
Grundsätzlich bedeutet dies, dass "die Größe des Zieloperanden 32 Bit beträgt". Dies führt also zu einer bitweisen UND-Verknüpfung des 32-Bit-Werts an der Adresse, die berechnet wird, indem der Inhalt des Registers ebp
genommen und vier mit 0 subtrahiert werden.
Betrachten Sie die Abbildung in dieser anderen Frage . ebp-4
ist Ihre erste lokale Variable und als Dword-Zeiger die Adresse einer 32-Bit-Ganzzahl, die gelöscht werden muss. Vielleicht beginnt Ihre Quelle mit
Object x = null;
Es ist eine 32-Bit-Deklaration. Wenn Sie am Anfang einer Assembly-Datei die Anweisung [Bits 32] eingeben, müssen Sie DWORD PTR nicht eingeben. Also zum Beispiel:
[bits 32]
.
.
and [ebp-4], 0