Dies ist eine strukturierte Readme für die X86 -Versammlung , die mit Beispielen in der realen Welt in der einfachsten Sprache geschrieben ist. ?
| Intel -Typ | Bits | Name |
|---|---|---|
| - - | 8 Bit | BYTE |
| 8086 | 16 Bit | WORT |
| i386 | 32 Bit | DWORD |
| x86 | 64 Bit | QWord |
dword = dword = (Doppelwort)
qWord = qWord = (Quad-Wort)
Auf 32 Bit Arm CPUs ist ein Wort 32 Bit.


(Älterer Text von der University of Virginia Computer Science (2006), einer der besten Führer für die X86 -Versammlung)
Modern (dh 3 86 und darüber hinaus) x 86 Prozessoren haben acht 32-Bit-Allzweckregister, wie in Abbildung 1 dargestellt. Die Registerkennamen sind größtenteils historisch . Zum Beispiel wurde EAX früher als Akkumulator bezeichnet, da es von einer Reihe von arithmetischen Operationen verwendet wurde, und ECX wurde als Zähler bezeichnet, da er zum Halten eines Schleifenindex verwendet wurde. Während die meisten Register ihre besonderen Zwecke im modernen Anweisungssatz verloren haben, sind zwei für besondere Zwecke reserviert - der Stapelzeiger (ESP) und der Basiszeiger (EBP).
Für die EAX- , EBX- , ECX- und EDX -Register können Unterabschnitte verwendet werden. Zum Beispiel können die am wenigsten signifikanten 2 Bytes EAX als 16-Bit-Register namens AX behandelt werden. Das am wenigsten signifikante AX- Byte kann als einzelnes 8-Bit-Register namens AL verwendet werden, während das bedeutendste AX- Byte als einzelnes 8-Bit-Register namens AH verwendet werden kann. Diese Namen beziehen sich auf dasselbe physische Register. Wenn eine Zwei-Byte-Menge in DX eingebaut wird, beeinflusst das Update den Wert von DH , DL und EDX . Diese Subregister sind hauptsächlich Hold-Overs aus älteren 16-Bit-Versionen des Befehlssatzes. Sie sind jedoch manchmal bequem, wenn Sie mit Daten zu tun haben, die kleiner als 32 Bit sind (zB 1-Byte-ASCII-Zeichen) .
Bei Bezug auf Register in der Versammlungssprache sind die Namen nicht zu sensibel . Beispielsweise beziehen sich die Namen EAX und EAX auf dasselbe Register .


In x86 haben Register ein ' e ' vor ihrem Namen.
Beispiel: E ax, e bx, e cx, e dx, e bp
Zusätzliche Infos:
In x64 haben Sie stattdessen eine ' r '.
Beispiel: R AX, R BX, R CX, R DX, R BP
Sie haben auch einen doppelten Precision-Gleitpunkt von xmm0 bis xmm15 .

Full Cheatsheet X86 Assembly, 20 Seiten.

