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
Bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
Význam | cf - carry | 1 | pf - parity | 0 | af - auxiliary | 0 | zf - zero | sf - sign |
8 | 9 | 10 | 11 | 12, 13 | 14 | 15 | 16 | 17 |
---|---|---|---|---|---|---|---|---|
tf - trace | if - interrupt | df - decrement | of - overflow | IOPL | nt - nested task | 0 | rf - resume | vm - virtual 8086 mode |
Bit | 0 - 15 | 16 - 47 |
---|---|---|
Význam | limit | base (lineární adresa) |
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)
Podobně jako 8086, hlavní rozdíl je v indexu:
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".