CPU Registers are small amounts of memory located in the processor. They provide a fast way to process data.
x86 registers
General purpose registers
32 bit
|
16 bit
|
8 high bit
|
8 low bit
|
description
|
eax
|
ax
|
ah
|
al
|
accumulator
|
ebx
|
bx
|
bh
|
bl
|
base
|
ecx
|
cx
|
ch
|
cl
|
counter
|
edx
|
dx
|
dh
|
dl
|
data
|
Segment registers
16 bit
|
description
|
cs
|
code segment
|
ds
|
data segment
|
es, fs, gs
|
extra segment
|
ss
|
stack segment
|
Index registers
32 bit
|
16 bit
|
description
|
esi
|
si
|
source index
|
edi
|
di
|
destination index
|
Pointer registers
32 bit
|
16 bit
|
description
|
ebp
|
bp
|
base pointer
|
esp
|
sp
|
stack pointer
|
eip
|
ip
|
index pointer
|
EFLAGS register
bit
|
label
|
description
|
0
|
cf
|
carry flag
|
2
|
pf
|
parity flag
|
4
|
af
|
auxiliary flag
|
6
|
zf
|
zero flag
|
7
|
sf
|
sign flag
|
8
|
tf
|
trap flag
|
9
|
if
|
interrupt flag
|
10
|
df
|
direction flag
|
11
|
of
|
overflow flag
|
12-13
|
iopl
|
i/o priviledge level
|
14
|
nt
|
nested task flag
|
16
|
rf
|
resume flag
|
17
|
vm
|
virtual 8086 mode flag
|
18
|
ac
|
alignment check flag
|
19
|
vif
|
virtual interrupt flag
|
20
|
vip
|
virtual interrupt pending
|
21
|
id
|
id flag
|
Control registers
Debug registers
dr0
|
dr1
|
dr2
|
dr3
|
dr4
|
dr5
|
dr6
|
dr7
|
Test registers
Pmode segmentation registers
gdtr
|
global descriptor table register
|
idtr
|
interrupt descriptor table register
|
ldtr
|
local descriptor table register
|
tr
|
task register
|