Obsah

Procesor 80386

32bitový registry

eax - extended accumulator
ecx - extended counter
edx - extended data
ebx - extended base
esp - extended stack pointer
ebp - extended base pointer
esi - extended source index
edi - extended destination index

cr0 - bit 0: PE (Protected mode Enable), bit 31: PG (Paging)
cr2 - lineární adresa
cr3 - adresa stránkovýho adresáře

dr0 ... dr3 - debugovací registry
dr6
dr7

eip - extended instruction pointer
eflags

Bit012345 67
Významcf - carry1pf - parity0 af - auxiliary0zf - zerosf - sign

89101112, 1314 151617
tf - traceif - interruptdf - decrement of - overflowIOPLnt - nested task0 rf - resumevm - virtual 8086 mode

48bitový registry

Bit0 - 1516 - 47
Významlimitbase (lineární adresa)
IDTR - interrupt descriptor table register
GDTR - global descriptor table register
DESKRIPTORY

16bitový registry

Obsahujou cache deskriptorú, takže při změně GDT, LDT nebo IDT je potřeba znovu je načíst, aby se změna projevila.
es - extra selector
cs - code selector
ss - stack selector
ds - data selector
fs
gs

tr - task register (ukazuje na TSS právě běžícího procesu)
LDTR - local descriptor table register (Každej proces má svúj)

Instrukce

Podobně jako 8086, hlavní rozdíl je v indexu:

mov

mov eax, [eax+0x100]
mov eax, [ecx+0x101]
mov eax, [edx+0x102]
mov eax, [ebx+0x103]
mov eax, [esp+0x104]
mov eax, [ebp+0x105]
mov eax, [esi+0x106]
mov eax, [edi+0x107]

mov eax, [eax+ecx+0x100]
mov eax, [edx*2+ebx+0x101]
mov eax, [esi*4+edi+0x102]
mov eax, [eax*8+ebp+0x103]

mov eax, cr0
mov cr0, eax
mov eax, dr0
mov dr0, eax

movzx eax, al ; move zero extend - doplní nulama
movsx eax, ax ; move sign extend - doplní znamínkovym bitem

Kompletní seznam instrukcí viz dokument "Instruction Set Reference".