X86-64
Die x86-64-Architektur (bzw. x64 oder AMD64) ist eine Erweiterung der x86-Architektur um 64-Bit-Register, Instruktionen zur Datenverarbeitung mit diesen Registern und um einen neuen Modus, den Long Mode. Der Long Mode erlaubt überhaupt erst die Benutzung der 64-Bit-Register. Darüber hinaus wurden einige veraltete aus dem Protected Mode bekannte Features entfernt, um gewisse Optimierungen möglich zu machen.
Inhaltsverzeichnis
CPU
Register
Übersicht
| Bits | Register | 
|---|---|
| 8 | AL, BL, CL, DL, DIL, SIL, BPL, SPL, R8L, R9L, R10L, R11L, R12L, R13L, R14L, R15L | 
| 16 | AX, BX, CX, DX, DI, SI, BP, SP, CS, DS, ES, FS, GS, SS, R8W, R9W, R10W, R11W, R12W, R13W, R14W, R15W | 
| 32 | EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, EIP, EFLAGS, R8D, R9D, R10D, R11D, R12D, R13D, R14D, R15D | 
| 64 | RAX, RBX, RCX, RDX, RDI, RSI, RBP, RSP, RIP, RFLAGS, R8, R9, R10, R11, R12, R13, R14, R15 | 
| 128 | XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15 | 
Allzweckregister
| 
 | 
 | Die Allzweckregister können, wie ihr Name schon andeutet eigentlich für fast jeden Zweck genutzt werden. Trotzdem gibt es einige gebräuchliche Nutzungen, siehe  hier 
 Achtung! Die ?H-Register sind nur in Funktionen nutzbar, die keinen REX-Präfix benutzen!  | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Indexregister
| 
 | Die Indexregister werden oft als Indexe in Datenbereichen verwendet, siehe  hier. 
 Achtung! Die ?IL-Register sind nur in Funktion nutzbar, die einen REX-Präfix benutzen! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Zeigerregister
| 
 | Die Zeigerregister werden genutzt, um auf Stellen im Speicher zu zeigen, siehe  hier 
 Achtung! Die ?PL-Register sind nur in Funktion nutzbar, die einen REX-Präfix benutzen! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Instruktionsregister
| 
 | Das Instruktionsregister RIP zeigt immer auf den nächsten auszuführenden Befehl. Es kann nicht direkt geändert werden, sondern nur über Funktion wie jmp, call oder ret | ||||||||||||||||||||||||||||||||||||||||
Flagregister
→ Hauptartikel: RFLAGS
| 
 | Das Flagregister RFLAGS speichert einige Konfigurationsmöglichkeiten und Systemzuständen, beispielweise, ob Interrupts gerade erlaubt sind oder ob ein Übertrag bei einer Addition stattfand. | ||||||||||||||||||||||||||||||||||||||||
Segmentregister
| 
 | Die Segmentregister geben die Basisadresse des aktuellen Segments an, siehe  hier. Die Segmentregister sind im Long Mode auch für die Segmentierung mit Hilfe der GDT verantwortlich. 
 | ||||||||
SSE-Register
→ Hauptartikel: SSE
Floatingpointregister
| Bytes | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 
| ST? | |||||||||
| ? = 0, 1, 2, 3, 4, 5, 6, 7 | |||||||||
| Bits | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 
| Control Register | |||||||||||||||
| Bits | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 
| Status Register | |||||||||||||||
| Bits | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 
| Tag Register | |||||||||||||||
| Bits | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 
| FOP | |||||||||
sonstige Hardware
→ siehe: x86

