ytwinky's 32Bit - Prozessor - Registermodell |
Name |
|
|
Verwendung (GPR = General Purpose Register) |
EAX |
|
GPR0 |
ECX |
|
GPR1 |
EDX |
|
GPR2 |
EBX |
|
GPR3 |
ESP |
|
GPR4 |
EBP |
|
GPR5 |
ESI |
|
GPR6 |
EDI |
|
GPR7 |
EIP |
|
Befehls-Zeiger (PC) |
EFlags |
31..22
| 21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Reserviert |
ID |
VIP |
VIF |
AC |
VM |
RF |
0 |
NT |
IOPL |
OF |
DF |
IF |
TF |
SF |
ZF |
0 |
AF |
0 |
PF |
1 |
CF |
|
Bedingungs-Anzeiger (Bits) |
CS |
|
Code-Segment Zeiger |
SS |
|
Stack-Segment Zeiger (Spitze vom Stack) |
DS |
|
Daten-Segment Zeiger 0 |
ES |
|
Daten-Segment Zeiger 1 |
FS |
|
Daten-Segment Zeiger 2 |
GS |
|
Daten-Segment Zeiger 3 |
32 Bit-Register | 16 Bit-Register | 8 Bit-Register |
Coprozessor (FPU) -Register |
R0 | Extended-Precision-Floating-Point: 19 signifikante Stellen, Wertebereich 10-4931..10+4931 | als Stack |
R1 | | |
R2 | | |
R3 | | |
R4 | | st(3) |
R5 | | st(2) |
R6 | | st(1) |
R7 | | st(0) |
Gilt für alle Intel (ab 386)- und AMD-Athlon-Prozessoren, dient aber nur zur Darstellung (ohne irgendeine Garantie)
volta's MMX (MultiMedia - eXtension)- Register |
|
|
FPU-Reg. |
|
|
(R0) |
|
|
(R1) |
|
|
(R2) |
|
|
(R3) |
|
|
(R4) |
|
|
(R5) |
|
|
(R6) |
|
|
(R7) |
MMX (ab P55C) aliased 8 x 64bit Register MM0..MM7 auf den 80bittigen FPU-Registern und ermöglicht es
Datentyp |
MMX-Register |
1 x 64 Bit Integer |
64 Bit QWord |
2 x 32 Bit Integer |
32 Bit DWord 1 |
32 Bit DWord 0 |
4 x 16 Bit Integer |
16 Bit Word 3 |
16 Bit Word 2 |
16 Bit Word 1 |
16 Bit Word 0 |
8 x 8 Bit Integer |
Byte 7 |
Byte 6 |
Byte 5 |
Byte 4 |
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
parallel zu verarbeiten.
Es ist entweder FP ODER (Integer) MMX möglich - aber nicht beides gleichzeitig.
SSE - Register |
XMM0 |
|
|
XMM1 | | |
XMM2 | | |
XMM3 | | |
XMM4 | | |
XMM5 | | |
XMM6 | | |
XMM7 | | |
SSE (ab P3/Athlon XP) enthält 8 x 128bittige Register XMM0..XMM7 in einer neuen Funktionseinheit.
Dort sind 4 x 32bit FLOATs pro Register unterbringbar für SIMD-Berechnungen.
Alternativ kann man durch skalare Operationen nur das unterste Element benutzen.
Datentyp |
XMM-Register |
1 x 128 Bit Integer |
128 Bit DQWord |
4 x 32 Bit floating point Werte |
32 Bit floating point Wert 3 |
32 Bit floating point Wert 2 |
32 Bit floating point Wert 1 |
32 Bit floating point Wert 0 |
SSE2 (ab P4/Athlon64) ermöglicht es auch in den 8 x 128bittigen XMM-Registern zwei 64bit DOUBLEs unterzubringen.
Ebenfalls kann (wie bei SSE) nur das unterste Element verwendet werden für skalare Berechnungen.
Ausserdem ermöglicht SSE2 es mit
Datentyp |
XMM-Register |
1 x 128 Bit Integer |
128 Bit DQWord |
2 x 64 Bit Integer |
64 Bit QWord 1 |
64 Bit QWord 0 |
4 x 32 Bit Integer |
32 Bit DWord 3 |
32 Bit DWord 2 |
32 Bit DWord 1 |
32 Bit DWord 0 |
8 x 16 Bit Integer |
16 Bit Word 7 |
16 Bit Word 6 |
16 Bit Word 5 |
16 Bit Word 4 |
16 Bit Word 3 |
16 Bit Word 2 |
16 Bit Word 1 |
16 Bit Word 0 |
16 x 8 Bit Integer |
Byte 15 |
Byte 14 |
Byte 13 |
Byte 12 |
Byte 11 |
Byte 10 |
Byte 9 |
Byte 8 |
Byte 7 |
Byte 6 |
Byte 5 |
Byte 4 |
Byte 3 |
Byte 2 |
Byte 1 |
Byte 0 |
2 x 64 Bit floating point Werte |
64 Bit floating point Wert 1 |
64 Bit floating point Wert 0 |
4 x 32 Bit floating point Werte |
32 Bit floating point Wert 3 |
32 Bit floating point Wert 2 |
32 Bit floating point Wert 1 |
32 Bit floating point Wert 0 |
in den Registern zu arbeiten.
Mit dem Opteron und mit dem Athlon64 bzw. dem
P4 mit EM64T (Extended Memory 64 Technology, auch bekannt als IA-32e)
wurden die Register noch einmal erweitert. Es wurden 16 neue 64bit
breite Register R0..R15 eingeführt.
64Bit - Prozessor - Registermodell |
Name |
|
|
Verwendung |
R0 |
|
32Bit Modus |
R1 |
|
32Bit Modus |
R2 |
|
32Bit Modus |
R3 |
|
32Bit Modus |
R4 |
|
32Bit Modus |
R5 |
|
32Bit Modus |
R6 |
|
32Bit Modus |
R7 |
|
32Bit Modus |
R8 |
RAX |
Akkumulator |
R9 |
RBX |
Base Register |
R10 |
RCX |
Counter |
R11 |
RDX |
Data Register |
R12 |
RBP |
Base-Pointer |
R13 |
RSI |
Source-Index |
R14 |
RDI |
Destination-Index |
R15 |
RSP |
Stack-Pointer |
|
RFLAGS |
Flagregister (Statusregister) |
|
RIP |
Instruction Pointer (Befehlszeiger) |
64 Bit-Register | 32 Bit-Register | 16 Bit-Register | 8 Bit-Register |
Die unteren 8 davon enthalten in den unteren 32bit die altebekannten
Register EAX, EBX, ECX, EDX, ESI, EDI, EBP und ESP - die oberen 8
werden erst aktiv wenn man in den 64bit Modus schaltet.
Zusätzlich wird die Registeranzahl von SSE von 8 XMM-Register ebenfalls noch einmal verdoppelt auf insgesamt 16 (XMM0..XMM15).
Unvollständig und Irrtum vorbehalten!