Ich schreibe einen kleinen Maschinencode-Generator für die Montage. Ich habe eine Frage bezüglich sofort in den Speicher Anweisungen:Montage korrekte Verwendung von Wort/Byte/Wort ptr
wir diese drei Szenarien nehmen:
add [ebx+04], 0x1
add [ebx+04], 0x4040
add [ebx+04], 0x401000
Was ich durch die unmittelbare Konstante wird, überprüfe ich, was die kleinste Anzahl von Bytes ist es passen kann dann gehe ich davon aus, ob seine Byte ptr, Wort ptr, dword ptr
erste in 1 Byte passen, damit ich es annehmen sein:
add byte ptr [ebx+04], 0x1
Zweite in 2 passen Bytes, so nehme ich an, es zu sein:
add word ptr [ebx+04], 0x4040
dritte passt in 4 Bytes, damit ich es annehmen sein:
add dword ptr [ebx+04], 0x401000
Ist das richtig?
Nein. Wie können Sie eine 32-Bit-Addition von 1 generieren? Die PTR-Anmerkung ist aus einem bestimmten Grund da. –
gibt es einen Grund für die Byte-Ptr, Word-Ptr, usw.-Nomenklatur. Weil der Benutzer in der Lage sein muss, den Befehl/Operanden auszuwählen. Wenn Sie Ihr eigenes erstellen, können Sie stattdessen addb, addw, addd anstelle von x ptr verwenden. –
wenn add [ebx + 04], 0x00000001 erzeugt ein dword ptr, dann können Sie vielleicht damit durchkommen, wenn die Benutzer die Regeln für Ihre Assemblersprache verstehen. –