预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共68页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第六章中断系统一、中断 1、中断的定义 当CPU正常运行时,由于随机事件(内部或外部)引 起CPU暂时中止正在运行的程序,转去执行请求中断的外 设(或内部事件)的中断服务程序,中断服务程序结束后 再返回被中止的程序,这一过程称为中断。 2、中断源和中断请求 能够向CPU发出中断请求的中断来源称为中断源。I/O设备(CRT、打印机等)、数据设备(磁盘、磁带等)、实时时钟、故障信号、软件中断等都是中断源。 中断源能发出中断请求信号到CPU,所以中断源中一般 要求有中断请求触发器,请求信号有边沿请求和电平请求 两种。3、中断系统的目的 维持系统正常工作,提高系统效率; 实时处理; 为故障处理作准备。 4、中断分类 中断分外部中断和内部中断两大类;其中外部 中断分为两类: ⑴可屏蔽中断INTR,由标志寄存器中的IF位 控制; ⑵不可屏蔽中断NMI,不受IF位控制。 5、中断系统功能 ⑴中断处理:发现中断请求、响应中断请求、 执行中断服务程序、中断返回。⑵中断控制:中断优先权排队、中断嵌套 当系统中有多个中断时,有可能出现两个或两个以上的中断源同时提出中断请求,这时要求CPU根据中断优先权由高到低依次处理。 中断嵌套如图6.1所示。假定有两个中断源A和B,A的级别高于B,当CPU正在处理B中断时,允许A能中断B的中断处理,转去执行A的中断服务程序,在高级中断A处理完后,返回到原来打断处,继续处理B的中断服务程序。图中为两级中断,还可以进行多级中断。 二、中断处理过程 1、中断检测 中断源向CPU发中断请求是随机的,大多数CPU在现 行指令周期结束时检测有无中断请求。8086CPU在每条指 令的最后一个机器周期的最后一个时钟周期检测中断请求 信号输入线INTR。 2、CPU响应中断的条件 CPU检测到INTR上有中断请求,要响应它需满足以下 条件: ⑴CPU开放中断,即CPU内部设置的中断允许触发器IF=1,此触发器可用开中断指令(STI)置1,用关中断指令(CLI)清0。实际上就是标志寄存器中的IF位=1,表示开放可屏蔽中断。参见图6.2。 ⑵CPU在现行指令结束后响应中断3、CPU响应中断及处理过程 满足上述条件后,CPU响应中断,转入中断周期,完 成以下操作,其时序如图6.4所示。 ⑴关中断:CPU响应中断时,发出中断响应信号INTA ,同时内部自动地关中断(IF=0),以禁止接受其他的中 断请求,以免破坏当前中断服务的现场。 ⑵保留断点:把断点处的指令指针IP值和CS值压入堆 栈,以便中断处理完成后正确地返回主程序断点。 ⑶识别中断源:识别中断源一般有查询和向量中断(类 型号)两种方法。 ⑷保护现场:把断点处的有关寄存器内容压入堆栈。 ⑸中断服务:执行中断服务程序⑹恢复现场:将压入堆栈的有关寄存器的内容弹出。 ⑺开中断:在中断服务的最后要开中断,以便CPU能 响应新的中断请求。 如果实现中断嵌套,可以在中断服务程序中,在适当 时候重新开放中断,以便允许响应较高级的中断。 ⑻中断返回:将堆栈内的断点值弹出。上述过程如图 6.5所示。 三、中断优先级和中断嵌套 1、中断优先级:中断优先级一般采用软件查询或硬件 中断优先级编码电路。 2、中断嵌套:当CPU执行优先级较低的中断服务时, 而允许响应比它优先级高的中断请求,而将正在处理的 中断暂时挂起,这就是中断嵌套。第二节8086/8088的中断系统2、内部中断 内部中断又称软件中断,主要来自CPU内部的软 件中断。 图6.6中,上部是外部的硬件中断;下部是内部 的软件中断。 二、中断向量表 1、中断向量的定义 所谓中断向量实际上就是中断服务程序的入口地 址。每个中断类型号对应一个中断向量。中断向量 占4个字节存储单元,其中前两个字节放中断向量 的偏移地址(IP),且低字节在前,高字节在后;后 两个字节放中断向量的段地址(CS),也是低字节 在前,高字节在后。2、中断向量表 存放中断向量的存储区称为中断向量表。通 常在存储器的低地址区。 3、8086/8088的中断向量表 8086/8088有256种中断类型,类型号为0-255(或0-FFH),共有256个中断向量,每个占4个存储单元,所以需要1024个字节,在存储器的最低端,地址从00000H-003FFH,这块地址空间就是中断向量表。 如图6.7所示。 从表中,知道了中断类型号,便可计算出相应的中断向量 在表中存放的位置,称为中断向量表地址,或称为中断向量 指针。从中断向量表地址中取出中断向量,便得到了该中断 类型号的中断服务程序入口地址。即 中断类型号×4=中断向量指针的低地址 中断类型号×4+2=中断向量指针的高地址 (中断向量指针的低地址)→(IP) (中断向量指针的高地址)→(CS) 例1:中断类型号为27H 则中断向量指针的