Diese Seite ist ein Artikel, welcher mehr haben könnte..
Wenn du mehr darüber weißt oder recherchieren willst, bist du aufgerufen, dies zu tun. Wenn du dir in einer Sache nicht sicher bist, dann stell es auf die Diskussionsseite.
|
x86 CPU Register
Übersicht
| Bits |
Register
|
| 8 |
AL, BL, CL, DL, AH, BH, CH, DH
|
| 16 |
AX, BX, CX, DX, DI, SI, BP, SP, CS, DS, ES, FS, GS, SS
|
| 32 |
EAX, EBX, ECX, EDX, EDI, ESI, EBP, ESP, EIP, EFLAGS
|
| 128 |
XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7
|
Allzweckregister
| Bytes
|
| 3
|
2
|
1
|
0
|
| E?X
|
|
|
?X
|
|
|
?H
|
?L
|
| ? = A, B, C, D
|
Die Allzweckregister können, wie ihr Name schon andeutet eigentlich für fast jeden Zweck genutzt werden. Trotzdem gibt es einige gebräuchliche Nutzungen, zum Beispiel
- EAX : Für Rechenoperatioen, als Rückgabewert in C
- ECX : Als Zähler
Indexregister
| Bytes
|
| 3
|
2
|
1
|
0
|
| E?I
|
|
|
?I
|
| ? = D, S
|
Die Indexregister werden oft als Indexe in Datenbereichen verwendet. Dabei zeigt
- ESI : Auf den Quelloperanden
- EDI : Auf den Zieloperanden
Zeigerregister
| Bytes
|
| 3
|
2
|
1
|
0
|
| E?P
|
|
|
?P
|
| ? = B, S
|
Die Zeigerregister werden genutzt, um auf Stellen im Speicher zu zeigen.
- ESP : Zeigt immer auf den aktuellen Stack
- EBP : Wird meistens für Stackframes und lokale Variablen bei Funktionsaufrufen verwendet
Instruktionsregister
Das Instruktionsregister EIP 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
Das Flagregister EFLAGS speichert einige Konfigurationsmöglichkeiten und Systemzuständen, beispielweise, ob Interrupts gerade erlaubt sind oder ob ein Übertrag bei einer Addition stattfand.
Segmentregister
| Bytes
|
| 1
|
0
|
| ?S
|
| ? = C, D, E, F, G, S
|
Die Segmentregister geben die Basisadresse des aktuellen Segments an. Dabei steht
- CS für das Code-Segment
- DS für das Data-Segment
- SS für das Stack-Segment
ES, FS und GS sind zusätzliche Daten-Segmente.
Die Segmentregister sind im Protected Mode auch für die Segmentierung mit Hilfe der GDT verantwortlich.
x86-64 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
| Bytes
|
| 7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
| R?X
|
|
|
E?X
|
|
|
?X
|
|
|
?H
|
?L
|
| ? = A, B, C, D
|
|
| Bytes
|
| 7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
| R?
|
|
|
R?D
|
|
|
R?W
|
|
|
R?L
|
| ? = 8, 9, 10, 11, 12, 13, 14, 15
|
|
Die ?H-Register sind nur in Funktion nutzbar, die KEINEN REX-Präfix benötigen!
Indexregister
| Bytes
|
| 7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
| R?I
|
|
|
E?I
|
|
|
?I
|
|
|
?IL
|
| ? = D, S
|
Die ?IL-Register sind nur in Funktion nutzbar, die einen REX-Präfix benötigen!
Zeigerregister
| Bytes
|
| 7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
| R?P
|
|
|
E?P
|
|
|
?P
|
|
|
?PL*
|
| ? = B, S
|
Die ?PL-Register sind nur in Funktion nutzbar, die einen REX-Präfix benötigen!
Instruktionsregister
| Bytes
|
| 7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
| RIP
|
|
|
EIP
|
|
|
IP
|
Flagregister
| Bytes
|
| 7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
| RFLAGS
|
|
|
EFLAGS
|
Segmentregister
| Bytes
|
| 1
|
0
|
| ?S
|
| ? = C, D, E, F, G, S
|
SSE-Register
| Bytes
|
| 15
|
14
|
13
|
12
|
11
|
10
|
9
|
8
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
| XMM?
|
| ? = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
|
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
|