Intel Defined CPU Exception Table (see notes)
Interrupt
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- A
- B
- C
- D
- E
- F
- 10
Function
- Divide by zero
- Single step
- Non-maskable(NMI)
- Breakpoint
- Overflow trap
- BOUND range exceeded (186,286,386)
- Invalid opcode (186,286,386)
- Coprocessor not available (286,386)
- Double fault exception (286,386)
- Coprocessor segment overrun (286,386)
- Invalid task state segment (286,386)
- Segment not present (286,386)
- Stack exception (286,386)
- General protection exception (286,386)
- Page fault (286,386)
- Reserved
- Coprocessor error (286,386)
IBM PC Hardware Interrupt Table (in order of priority)
IRQ#
- IRQ0
- IRQ1
- IRQ2
- IRQ8
- IRQ9
- IRQ10
- IRQ11
- IRQ12
- IRQ13
- IRQ14
- IRQ15
- IRQ3
- IRQ4
- IRQ5
- IRQ6
- IRQ7
Interrupt
- 8
- 9
- A
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- B
- C
- D
- E
- F
Function
- timer (55ms intervals, 18.2 per second)
- keyboard service required
- slave 8259 or EGA/VGA vertical retrace
- real time clock (AT,XT286,PS50+)
- software redirected to IRQ2 (AT,XT286,PS50+)
- reserved (AT,XT286,PS50+)
- reserved (AT,XT286,PS50+)
- mouse interrupt (PS50+)
- numeric coprocessor error (AT,XT286,PS50+)
- fixed disk controller (AT,XT286,PS50+)
- reserved (AT,XT286,PS50+)
- COM2 or COM4 service required,(COM3-COM8 on MCA PS/2)
- COM1 or COM3 service required
- fixed disk or data request from LPT2
- floppy disk service required
- data request from LPT1 (unreliable on IBM mono)
Interrupt Table as Implemented by System BIOS/DOS
INT#
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- A
- B
- C
- D
- E
- F
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 1A
- 1B
- 1C
- 1D
- 1E
- 1F
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 2A
- 2B
- 2C
- 2D
- 2E
- 2F
- 30-31
- 31
- 32
- 33
- 34-3E
- 3F
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 4A
- 4B-4F
- 50
- 51-58
- 59
- 5A
- 5B
- 5C
- 5D-5F
- 60-67
- 67
- 68
- 69-6B
- 6C
- -
- 6D-6F
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78-79
- 80-85
- 86-F0
- 86
- E0
- F1-FF
- FE-FF
Locus
- CPU
- CPU
- CPU
- CPU
- CPU
- BIOS
- CPU
- CPU
- IRQ0
- IRQ1
- IRQ2
- IRQ3
- IRQ4
- IRQ5
- IRQ6
- IRQ7
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- DOS
- CPM
- DPMI
- -
- -
- -
- -
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- BIOS
- NETBIOS
- BIOS
- -
- EMS
- -
- -
- DOS
- BIOS
- -
- IRQ8
- IRQ9
- IRQ10
- IRQ11
- IRQ12
- IRQ13
- IRQ14
- IRQ15
- -
- -
- DOS
- NETBIOS
- CPM
- -
- -
Function
- divide by zero
- single step
- non-maskable
- breakpoint
- overflow trap
- print screen
- Invalid opcode (186,286,386)
- coprocessor not available (286,386)
- timer (55ms intervals, 18.21590 per second)
- keyboard service required (see INT 9)
- slave 8259 or EGA/VGA vertical retrace
- COM2 service required (PS/2 MCA COM3-COM8)
- COM1 service required
- fixed disk or data request from LPT2
- floppy disk service required
- data request from LPT1 (unreliable on IBM mono)
- video (see INT 10)
- Equipment determination (see INT 11)
- memory size (see INT 12)
- disk I/O service (see INT 13)
- serial communications (see INT 14)
- system services, cassette (see INT 15)
- keyboard services (see INT 16)
- parallel printer (see INT 17)
- ROM BASIC loader
- bootstrap loader (unreliable, see INT 19)
- time of day (see INT 1A)
- user defined ctrl-break handler (see INT 1B)
- user defined clock tick handler (see INT 1C)
- 6845 video parameter pointer
- diskette parameter pointer (base table)
- graphics character table
- general program termination
- function request services (see INT 21)
- terminate address (see INT 22)
- control break termination address (see INT 23)
- critical error handler (see INT 24)
- absolute disk read (see INT 25)
- absolute disk write (see INT 26)
- terminate and stay resident (see INT 27)
- idle loop, issued by DOS when idle (see INT 28)
- fast TTY console I/O (see INT 29)
- critical section and NETBIOS (see INT 2A)
- internal, simple IRET in DOS 2.0-5.0
- internal, simple IRET in DOS 2.0-5.0
- internal, simple IRET in DOS 2.0-5.0
- exec command from base level command interpreter(see INT 2E)
- multiplexer (see INT 2F)
- far jump vector for CPM (not an interrupt)
- DOS Protected Mode Interface (for DOS extenders)
- reserved
- mouse support (see INT 33)
- Microsoft/Borland floating point emulation
- overlay manager
- hard disk
- fixed disk 0 parameters pointer (see INT 13,9)
- relocated video handler (EGA/VGA/PS)
- user font table (EGA/VGA/PS)
- first 128 graphics characters (also Netware)
- reserved for BIOS
- fixed disk 1 parameters ptr (see INT 13,9/INT 41)
- reserved for BIOS
- PCjr cordless keyboard translation
- PCjr non-keyboard scancode translation table
- user alarm (AT,CONV,PS/2) (see INT 4A)
- reserved
- periodic alarm from timer (PS/2)
- reserved
- GSS Computer Graphics Interface
- cluster adapter BIOS entry point
- cluster adapter boot
- NETBIOS interface, TOPS interface
- reserved for BIOS
- reserved for user software interrupts
- LIM/EMS specification (see INT 67)
- APPC
- reserved by IBM
- DOS 3.2 real time clock update
- system resume vector
- reserved
- real time clock (AT,XT286,PS50+, see INT 15)
- software redirected to IRQ2 (AT,XT286,PS50+)
- reserved (AT,XT286,PS50+)
- reserved (AT,XT286,PS50+)
- mouse interrupt (PS50+)
- numeric coprocessor NMI error (AT,XT286,PS50+)
- fixed disk controller (AT,XT286,PS50+)
- reserved (AT,XT286,PS50+)
- unused
- ROM BASIC
- reserved for BASIC interpreter use
- NETBIOS relocated INT 18
- CP/M 86 function calls
- reserved by IBM
- may be destroyed by return from protected mode using VDISK on 286 machines (Apr 86, DDJ)
- Intel defined 0 through 20h for use for internal CPU; IBM redefined interrupts 0 through 1Fh for its own use, hence the duplicate definitions in the tables
- all interrupts except the internal CPU exceptions push the flags and the CS:IP of the next instruction onto the stack. CPU exception interrupts are similar but push the CS:IP of the causal instruction. 8086/88 divide exceptions are different, they return to the instruction following the division
- interrupts are disabled upon entry into any interrupt routine and should be enabled by the user or by an IRET
- in DOS 3.2+ hardware IRQ interrupts are re-vectored through DOS to provide standard stack frames