Zum Beispiel einen Hex gegeben: 83 E4 F0
x86 herauszufinden, Operandengröße der Anweisung nur den Hex-Maschinencode gegeben?
Mit Blick auf das Handbuch Intel Entwickler, kann ich herausfinden, dass 83
bedeutet and
und FO
bedeutet die -16
. Mit Blick auf E4
kann ich decodieren, dass das Quell-/Zielregister entweder SP oder ESP ist.
Daher kann ich schließen, dass das hex bedeutet entweder and $-16, %ESP
oder and $-16, %SP
. Im Handbuch werden diese jedoch als 83 /4 ib
aufgeführt.
Wie kann ich zwischen diesen beiden unterscheiden?
Kommt drauf an. Wenn im Realmodus oder wenn die Standardoperandengröße des aktuellen Segments/Selektors auf 16 Bit gesetzt ist, wird dies als 'und sp, -16 'ausgeführt. "Normalerweise" wäre es die 32-Bit-Version. – harold