Introduction to Computer Engineering by Richard E. Haskell Interrupts Module M17.3 Sections 11.3, 14.1
Introduction to Computer Engineering by Richard E. Haskell Interrupts Software Interrupts Hardware Interrupts
Introduction to Computer Engineering by Richard E. Haskell Software Interrupts BIOS Calls –Keyboard -- INT 16H –Video I/O -- INT 10H –Serial I/O -- INT 14H –Printer I/O -- INT 17H –Time of day -- INT 1AH –Timer tick -- INT 1CH DOS Calls –Function request -- INT 21H
Introduction to Computer Engineering by Richard E. Haskell Interrupt Processing
Introduction to Computer Engineering by Richard E. Haskell Interrupt Vector Table
Introduction to Computer Engineering by Richard E. Haskell Interrupt service routines end with an IRET instruction that pops the following values off the stack.
Introduction to Computer Engineering by Richard E. Haskell IP CS C CS IP Interrupt Vector Table Offset address Type number Division by zero Single Stepping NMI Interrupt 1-Byte INT (opcode = CC) Signed overflow (INTO) Print screen
Introduction to Computer Engineering by Richard E. Haskell Time of Day Interrupt: INT 1AH
Introduction to Computer Engineering by Richard E. Haskell Hardware Interrupts Nonmaskable Interrupt, NMI
Introduction to Computer Engineering by Richard E. Haskell IP CS C CS IP Interrupt Vector Table Offset address Type number Division by zero Single Stepping NMI Interrupt 1-Byte INT (opcode = CC) Signed overflow (INTO) Print screen
Introduction to Computer Engineering by Richard E. Haskell
IP CS IP CS IP CS IP CS IP CS IP CS IP CS A 1B 1C 05C C 070 Keyboard I/O Printer I/O Cassette BASIC Bootstrap Time of Day Keyboard Break Timer Tick Interrupt Vector Table
Introduction to Computer Engineering by Richard E. Haskell RESET Set Status, IP, DS, SS, and ES to 0000H Set CS to FFFFh Execution begins at FFFF:0000
Introduction to Computer Engineering by Richard E. Haskell