CPU Registers x86

From OSDev.wiki
Jump to navigation Jump to search

CPU Registers are small amounts of memory located on 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

cr0 cr1 cr2 cr3 cr4

Debug registers

dr0 dr1 dr2 dr3 dr4 dr5 dr6 dr7

Test registers

tr3 tr4 tr5 tr6 tr7

Pmode segmentation registers

gdtr global descriptor table register
idtr interrupt descriptor table register
ldtr local descriptor table register
tr task register