Internal hardware interrupts, sometimes called faults, are generated by certain events encountered during program execution, such as an attempt to divide by zero. The assignment of such events to certain interrupt numbers is wired into the processor and is not modifiable (Figure 13-1).
Interrupt Vector Interrupt 8086/88 80286 80386
level address trigger
00H 00H—03H Divide-by-zero x x x
01H 04H—07H Single step x x x
02H 08H—0BH Nonmaskable x x x
interrupt (NMI)
03H 0CH—0FH Breakpoint x x x
04H 10H—13H Overflow x x x
05H 14H—17H BOUND exceeded x x
06H 18H—1BH Invalid opcode x x
07H 1CH—1FH Processor extension x x
not available
08H 20H—23H Double fault x x
09H 24H—27H Segment overrun x x
0AH 28H—2BH Invalid task-state x x
segment
0BH 2CH—2FH Segment not present x x
0CH 30H—33H Stack segment x x
overrun
0DH 34H—37H General protection x x
fault
0EH 38H—3BH Page fault x
0FH 3CH—3FH Reserved
10H 40H—43H Numeric coprocessor x x
error
11H—1FH 44H—7FH Reserved
Figure 13-1. Internal interrupts (faults) on the Intel 8086/88, 80286, and 80386 microprocessors.