General Purpose Registers | Segment Registers |
---|---|
AH/AL AX (EAX) Accumulator | CS Code Segment |
BH/BL BX (EBX) Base | DS Data Segment |
CH/CL CX (ECX) Counter | SS Stack Segment |
DH/DL DX (EDX) Data | ES Extra Segment |
(FS) 386 and newer | |
(Exx) indicates 386+ 32 bit register | (GS) 386 and newer |
Pointer Registers | Stack Registers |
SI (ESI) Source Index | SP (ESP) Stack Pointer |
DI (EDI) Destination Index | BP (EBP) Base Pointer |
IP Instruction Pointer | |
Status Register | |
FLAGS Status Flags (see FLAGS) | |
Special Registers (386+ only) | |
CR0 Control Register 0 | DR0 Debug Register 0 |
CR2 Control Register 2 | DR1 Debug Register 1 |
CR3 Control Register 3 | DR2 Debug Register 2 |
DR3 Debug Register 3 | |
TR4 Test Register 4 | DR6 Debug Register 6 |
TR5 Test Register 5 | DR7 Debug Register 7 |
TR6 Test Register 6 | |
TR7 Test Register 7 |
Register | Default Segment | Valid Overrides |
---|---|---|
BP | SS | DS, ES, CS |
SI or DI | DS | ES, SS, CS |
DI strings | ES | None |
SI strings | DS | ES, SS, CS |
Some instructions require additional clock cycles due to a "Next Instruction Component" identified by a "+m" in the instruction clock cycle listings. This is due to the prefetch queue being purge on a control transfers. Below is the general rule for calculating "m":
"TS" is defined as switching from VM/486 or 80286 TSS to one of the following:
New Task | |||||
---|---|---|---|---|---|
Old task | 486 TSS (VM=0) |
486 TSS (VM=1) |
386 TSS (VM=0) |
386 TSS (VM=1) |
286 TSS |
386 TSS (VM=0) | 309 | 226 | 282 | ||
386 TSS (VM=1) | 314 | 231 | 287 | ||
386 CPU/286 TSS | 307 | 224 | 280 | ||
486 CPU/286 TSS | 199 | 177 | 180 |
Miscellaneous
|11|10|F|E|D|C|B|A|9|8|7|6|5|4|3|2|1|0| | | | | | | | | | | | | | | | | | |___ CF Carry Flag | | | | | | | | | | | | | | | | |___ 1 | | | | | | | | | | | | | | | |___ PF Parity Flag | | | | | | | | | | | | | | |___ 0 | | | | | | | | | | | | | |___ AF Auxiliary Flag | | | | | | | | | | | | |___ 0 | | | | | | | | | | | |___ ZF Zero Flag | | | | | | | | | | |___ SF Sign Flag | | | | | | | | | |___ TF Trap Flag (Single Step) | | | | | | | | |___ IF Interrupt Flag | | | | | | | |___ DF Direction Flag | | | | | | |___ OF Overflow flag | | | | |_____ IOPL I/O Privilege Level (286+ only) | | | |_____ NT Nested Task Flag (286+ only) | | |_____ 0 | |_____ RF Resume Flag (386+ only) |______ VM Virtual Mode Flag (386+ only)
- see PUSHF POPF STI CLI STD CLD
|31|30-5|4|3|2|1|0| Machine Status Word | | | | | | |____ Protection Enable (PE) | | | | | |_____ Math Present (MP) | | | | |______ Emulation (EM) | | | |_______ Task Switched (TS) | | |________ Extension Type (ET) | |__________ Reserved |_____________ Paging (PG)
Bit 0 PE Protection Enable, switches processor between protected and
real mode
Bit 1 MP Math Present, controls function of the WAIT instruction
Bit 2 EM Emulation, indicates whether coprocessor functions are to be
emulated
Bit 3 TS Task Switched, set and interrogated by coprocessor on task switches
and when interpretting coprocessor instructions
Bit 4 ET Extension Type, indicates type of coprocessor in system
Bits 5-30 Reserved
bit 31 PG Paging, indicates whether the processor uses page tables to
translate linear addresses to physical addresses
[ TOC | Previous | NeXt | Winston's page ]