.::ALU/CPU Registers::.
The Pentium processor has 16 registers for use in general programming
Eight 32-bit general purpose data registers
Six 16-bit segment registers
Two 32-bit status and control registers
The general purpose data registers are used for holding:
Operands for logical and arithmetic operations
Operands for address calculations
Memory pointers
General purpose registers:
EAX - Accumulator for operands and results
EBX - Pointer to data in the DS segment
ECX - Counter for loop operations
EDX - Input/output pointer
ESI - Pointer to data in the DS segment
EDI - Pinter to data in the ES segment
ESP - Stack pointer (SS segment)
EBP - Pointer to data on the stack (SS segment)
32-bit
16-bit
high bytes
low bytes
EAX
AX
AH
AL
EBX
BX
BH
BL
ECX
CX
CH
CL
EDX
DX
DH
DL
ESI
SI
EDI
DI
ESP
SP
EBP
BP
Segment registers identify a particular segment in main memory. There is the code segment, the stack segment, and four data segments:
CS - code segment
SS - stack segment
DS - data segment
ES - data segment
FS - data segment
GS - data segment
Status and control registers:
EFLAGS - Contains a group of status flags, a control flag, and a group of system flags.
EIP - The instuction pointer register contains the offset in the current code segment for the next instruction