PCjs Machines

Home of the original IBM PC emulator for browsers.


Intel 80286 CPU: Exceptions

[The following information is from an undated 15-page Intel document titled “Undocumented iAPX 286 Test Instruction”, pp. 13-14. NOTE: The initial reference to LOADALL as “opcode 0F04H” and the subsequent references to the “0F05H opcode” are exactly as they appear in the original document. Whether or not they were mistakes is unknown.]

The exception 13 handler will probably use a lookup table for the opcode byte of the instruction causing exception 13 to determine the correct action for this instruction. In general, any undefined opcode causes exception 6 and would therefore not invoke exception 13. However, some implementations may emulate some instructions. The following explains the empty entries in the opcode map to aid in determining an emulation strategy.

The following is a list of exclusions from the general rule of undefined 80286 opcodes causing exception 6.

Restarting string instructions which caused exception 12 (if SS override was used) or exception 13 requires updating SI, DI, and CX (if repeat was used). Which registers are updated depends on the instruction and when the exception was detected. The following rules apply: