第十章中断系统及中断控制器
中断的基本概念
可编程中断控制器8259A
8259A应用举例
第一节中断的基本概念
1. 中断的概念:
1956年,美国,IBM公司IBM 7049机上首先使用了中断处理技术,并开始使用“中断”(interrupt)这一术语。
中断最初是作为处理器与外部设备交换信息的一种控制方式提出的。由此,最初的中断全部是对外部设备而言的,称为外部中断或硬件中断。
随着计算机技术的发展,中断的范围也随之扩大,出现了内部软件中断的概念,它是为解决机器内部运行时出现的异常以及为编程方便而提出的。
不论哪种中断都遵循同样的中断处理过程
中断:处理器暂停执行当前程序,转而处理随机发生的事件,处理完毕后再返回到断点处继续执行原来程序的过程。
断点
主程序
中断服务程序
有中断请求
对外设
进行处理
继续执行
返回断点
所谓中断向量,实际上就是中断服务程序的入口地址,每个中断类型对应一个中断向量。
中断类型号通过一个地址指针表与中断服务程序的入口地址相联,在实模式下,该表称为中断向量表。
中断向量表包含256个中断向量。每个中断向量包含两个字(4个字节),高地址字为中断服务程序所在代码段的段基址,低地址字为代码段中中断服务程序第一条指令的偏移量。
实模式下,中断向量表存放在内存最低端的1K单元之中,物理地址00000H~003FFH
中断类型码和中断向量所在位置之间的对应关系
CS
IP
CS
IP
CS
IP
CS
IP
CS
IP
CS
IP
CS
IP
类型255
类型32
类型0
类型4
类型3
类型2
类型1
0000:0000H~0000:0003H
0000:0010H~0000:0013H
0000:000CH~0000:000FH
0000:0008H~0000:000BH
0000:0004H~0000:0007H
供用户定义的中断(224个)
专用中断(5个)
保留中断(27个)
0000:03FCH~0000:03FFH
中断类型号* 4 = 该类型入口地址的地址
例题
类型号为20H的中断所对应的中断向量存放在0000:0080H开始的4个单元钟,如图示,则它所对应的中断服务程序的入口地址为4030:2010H。
一个系统中对应中断类型号17H的中断服务程序存放在2345:7890H开始的内存区域中,则17H对应的中断向量存放于何处?
40H
30H
20H
10H
23H
45H
78H
90H
17H * 4 = 5CH
0000:0083H
0000:0082H
0000:0081H
0000:0080H
0000:005FH
0000:005EH
0000:005DH
0000:005CH
可编程中断控制器8259A
8259A是一种可编程中断控制器,有如下功能:
一片Intel 8259A可管理8个中断请求,并把当前优先级最高的中断请求送到CPU的INTR端。
当CPU响应中断时,为CPU提供中断类型码。
8个外部中断的优先级排列方式,可以通过对8259A编程进行指定。也可以通过编程屏蔽某些中断请求,或者通过编程改变中断类型码。
允许9片8259A级联,构成64级中断系统
8259A
28
27
26
25
24
23
22
21
20
19
18
17
16
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
VCC
A0
IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR0
INT
CAS2
D7
D6
D5
D4
D3
D2
D1
D0
CAS0
CAS1
GND
8259A的引脚及工作原理
D7~D0:数据总线,双向,三态。用于与CPU之间传送命令、状态、中断类型码。
RD :读信号,输入。用来通知8259把某个内部寄存器的值送数据线D7~D0 。
WR:写信号,输入。用来通知8259把数据线D7~D0上的值写入内部某个寄存器。
CS:片选信号,输入。通过地址译码逻辑电路与地址总线相连。
A0:地址线,输入。用来指出当前8259的哪个端口被访问,选择内部寄存器的端口地址。
在标准AT机中,使用两片8259构成主从式中断系统,
主8259的端口地址: 20H,21H
从8259的端口地址: A0H,A1H
INT:中断请求,输出。把IR7~IR0上的最高优先级请求传送到CPU的INTR引脚,向CPU发中断请求。
INTA:中断响应,接收CPU的中断应答信号。CPU发出的中断响应信号为
第十章中断系统及中断控制器 来自淘豆网www.taodocs.com转载请标明出处.