Register
386er
FPU
MMX
SSE
SSE2
64Bit Prozessoren
volta-Homepage
 
ytwinky's 32Bit - Prozessor - Registermodell
Name
3116
150
Verwendung
(GPR = General Purpose Register)
EAX
 AX
AHAL
GPR0
ECX
 CX
CHCL
GPR1
EDX
 DX
DHDL
GPR2
EBX
 BX
BHBL
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-Register16 Bit-Register8 Bit-Register

Coprozessor (FPU) -Register
R0Extended-Precision-Floating-Point: 19 signifikante Stellen, Wertebereich 10-4931..10+4931als Stack
R1 
R2 
R3  
R4 st(3)
R5 st(2)
R6 st(1)
R7 st(0)
80 Bit-Register

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
7964
63 (Mantisse)0
FPU-Reg.
MM0
(R0)
MM1
(R1)
MM2
(R2)
MM3
(R3)
MM4
(R4)
MM5
(R5)
MM6
(R6)
MM7
(R7)
64 Bit-Register

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
1270
 
XMM1  
XMM2  
XMM3  
XMM4  
XMM5  
XMM6  
XMM7  
128 Bit-Register
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
6332
310
Verwendung
R0
EAX
AX
AH AL
32Bit Modus
R1
EBX
BX
BH BL
32Bit Modus
R2
ECX
CX
CH CL
32Bit Modus
R3
EDX
DX
DH DL
32Bit Modus
R4
EBP
32Bit Modus
R5
ESI
32Bit Modus
R6
EDI
32Bit Modus
R7
ESP
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!