* remove "\r" nonsense
[mascara-docs.git] / i386 / i386.reference / s09_01.htm
blobdf18a77a1ecdf3fa53973f8a6aabeb0ef08a82fa
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2 <HTML>
3 <HEAD>
4 <TITLE>80386 Programmer's Reference Manual -- Section 9.1</TITLE>
5 </HEAD>
6 <BODY>
7 <B>up:</B> <A HREF="c09.htm">
8 Chapter 9 -- Exceptions and Interrupts</A><BR>
9 <B>prev:</B> <A HREF="c09.htm">Chapter 9 -- Exceptions and Interrupts</A><BR>
10 <B>next:</B> <A HREF="s09_02.htm">9.2 Enabling and Disabling Interrupts</A>
11 <P>
12 <HR>
13 <P>
14 <H1>9.1 Identifying Interrupts</H1>
15 The processor associates an identifying number with each different type of
16 interrupt or exception.
17 <P>
18 The NMI and the exceptions recognized by the processor are assigned
19 predetermined identifiers in the range 0 through 31. Not all of these
20 numbers are currently used by the 80386; unassigned identifiers in this
21 range are reserved by Intel for possible future expansion.
22 <P>
23 The identifiers of the maskable interrupts are determined by external
24 interrupt controllers (such as Intel's 8259A Programmable Interrupt
25 Controller) and communicated to the processor during the processor's
26 interrupt-acknowledge sequence. The numbers assigned by an 8259A PIC can be
27 specified by software. Any numbers in the range 32 through 255 can be used.
28 Table 9-1 shows the assignment of interrupt and exception identifiers.
29 <P>
30 Exceptions are classified as faults, traps, or aborts depending on the way
31 they are reported and whether restart of the instruction that caused the
32 exception is supported.
33 <DL>
34 <DT>
35 Faults
36 <DD>
37 Faults are exceptions that are reported "before" the
38 instruction causingthe exception. Faults are either detected before
39 the instruction begins to execute, or during execution of the
40 instruction. If detected during the instruction, the fault is
41 reported with the machine restored to a state that permits the
42 instruction to be restarted.
43 <DT>
44 Traps
45 <DD>
46 A trap is an exception that is reported at the instruction
47 boundary immediately after the instruction in which the
48 exception was detected.
49 <DT>
50 Aborts
51 <DD>
52 An abort is an exception that permits neither precise location
53 of the instruction causing the exception nor restart of the program
54 that caused the exception. Aborts are used to report severe errors,
55 such as hardware errors and inconsistent or illegal values in system
56 tables.
57 <PRE>
58 Table 9-1. Interrupt and Exception ID Assignments
60 Identifier Description
62 0 Divide error
63 1 Debug exceptions
64 2 Nonmaskable interrupt
65 3 Breakpoint (one-byte INT 3 instruction)
66 4 Overflow (INTO instruction)
67 5 Bounds check (BOUND instruction)
68 6 Invalid opcode
69 7 Coprocessor not available
70 8 Double fault
71 9 (reserved)
72 10 Invalid TSS
73 11 Segment not present
74 12 Stack exception
75 13 General protection
76 14 Page fault
77 15 (reserved)
78 16 Coprecessor error
79 17-31 (reserved)
80 32-255 Available for external interrupts via INTR pin
81 </PRE>
82 <P>
83 <HR>
84 <P>
85 <B>up:</B> <A HREF="c09.htm">
86 Chapter 9 -- Exceptions and Interrupts</A><BR>
87 <B>prev:</B> <A HREF="c09.htm">Chapter 9 -- Exceptions and Interrupts</A><BR>
88 <B>next:</B> <A HREF="s09_02.htm">9.2 Enabling and Disabling Interrupts</A>
89 </BODY>