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