80286
Opcode 0F05. The instruction reads data from addresses 00800-00866, whatever the content of the segment registers.
Address | number of bytes | register | register | register | register |
---|---|---|---|---|---|
00800 | 6 | not used | |||
00806 | 2 | MSW (machine status word) | |||
00808 | 14 | not used | |||
00816 | 2 | TR (task register) | |||
00818 | 2 | flags | |||
0081A | 2 | IP (instruction pointer) | |||
0081C | 2 | LDTR (local descriptor table register) | |||
0081E | 4x2 | DS (data segment) | SS (stack segment) | CS (code segment) | ES (extra segment) |
00826 | 4x2 | DI (destination index) | SI (source index) | BP (base pointer) | SP (stack pointer) |
0082E | 4x2 | BX | DX | CX | AX |
00836 | 4x6 | ES segment descriptor | CS segment descriptor | SS segment descriptor | DS segment descriptor |
0084E | 4x6 | GDT, global descriptor table | LDT, local descriptor table | IDT, interrupt descriptor table | TSS, task state segment |
Note that the 80286 LOADALL instruction can not be used to switch from protected back to real mode (it can't clear the PE bit in the MSW). However, use of the LOADALL instruction can avoid the need to switch to protected mode altogether.
Read more about this topic: LOADALL