Вы находитесь на странице: 1из 4

Chapter 11 Summary: Interrupt Interface of the 8086 Microprocessor

An Interrupt can be caused by: 1. An external hardware applying voltage to the INTR pin of the microprocessor, which indicates that the external device, such as printer or keyboard, requires service (hardware-based interrupt). 2. By executing the INT xx instruction (software-based interrupt). 3. Due to an internal interrupt (e.g., divide by zero).

Figure 11-1 Interrupt program context switching mechanism.


1

When an interrupt signal occurs, the MPU must suspend what it is doing in the main part of the program and pass control to a special routine (called the interrupt-service routine) that performs the function required by the external device. For example, when the printer causes an interrupt, the printer driver (interruptservice routine) is called, but how does the microprocessor know where to jump? The 8086 microprocessor is capable of implementing any combination of up to 256 interrupts. An interrupt vector table is stored in the first 1 kbyte of memory (starting at address 00000h and ending at 003FFh). This is a pointer table to indicate the location of service routines corresponding to interrupt types 0 to 255. The CS and IP in the interrupt vector table indicate the location of the service routine for the corresponding interrupt. For example, when an interrupt of type 32 occurs, the microprocessor looks at address 32 * 4 = 128 = 80h and (after pushing the current CS and IP) loads the new values of CS and IP from 80h to jump to the interrupt service routine. The first 32 interrupt types have dedicated functions or are reserved (see Figure 11.3). Interrupts are serviced on a priority basis. Type 0 identifies the highestpriority interrupt, and type 255 identifies the lowest-priority interrupt. If an interrupt-service routine has been initiated to perform a function assigned to a specific priority level, only interrupts with higher priority are allowed to interrupt the active service routine. Lower-priority devices have to wait until the current service routine is completed. The user normally assigns tasks that must not be interrupted frequently to higher-priority levels and those that can be interrupted to lower-priority levels (e.g., the keyboard is high-priority and the floppy disk is low-priority). If the IF flag is set (IF = 1), it enables the external interrupt request pin (INTR) input for operation (i.e., enables hardware interrupts). If IF = 0 the INTR pin is disabled and external devices cannot interrupt the microprocessor operation.

Figure 11-3 Interrupt vector table of the 8086 microprocessor.

11.3 INTERRUPT INSTRUCTIONS Below is a summary of 8086 interrupt instructions.

Figure 11-4 Interrupt instructions

Вам также может понравиться