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