You are on page 1of 30

CHAPTER 6

INTERRUPTS AND THE 8259 CHIP

What happens on interrupt?


Micro automatically saves (on stack) the FR (flag register), IP (instruction pointer), CS (code segement register). There are 255 interrupts. The address of the appropriate ISR can be computed by multiplying the interrupt number by 4! The 4 bytes in the interrupt vector table contain CS:IP The address where the ISR is located is IP <= IP value in table + CS value in table (shifted left one nybble!) Example: CS value in table is $0001 and IP is $1820 then ISR routine starts at $11820

Interrupt Vector Table

8088 Interrupt List

Hardware Versus Software Interrupts


INTR (pos level sensitive) and NMI (posedge sensitive) INT is command that causes software interrupt. Also, have EXCEPTIONS (SWI that happens automatically w/o INT cmd)

If we only have one INTR pin, does that mean we can only have one kind of interrupt? NO. 8259 chip will allow us to have up to 8 AND if we use nine 8259 chips we can have up to 64!

Condition Codes (Status) Register

ISR Addresses

8259 Programmable Interrupt Controller

8259 Programmable Interrupt Controller Block Diagram

Addresses for 8259 ICWs

ICW1 and ICW2 Formats

INT Numbers

ICW3 and ICW4 Formats

Finding ICWs for a 8259

Addresses for 8259 OCWs

OCW Format for the 8259

Enabling IR0 thru IR7

Issuing the EOI to 8259 Chip

8259 Port Addresses in IBM PC/XT Computer

PC/XT I/O Address Map

IBM PC/XT hardware Interrupts

IBM PC/XT Initialization of 8259

What happens on interrupt?

PC/XT Sources of Hardware Interrupt

PC/XT Sources of NMI Interrupt

PC/XT Port Uses

What caused the NMI?

Ch 6 Problems (part1)

Ch 6 Problems (part 2)

Ch 6 Problems (part 3)

You might also like