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

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

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

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

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

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

第九章微型计算机中断系统9-1概述2、中断的定义 CPU正常运行程序时,由于CPU的内部事件或外设请求,引起CPU暂时中断正在运行的程序,转去执行相应的外设(或内部事件)的服务程序,程序执行完后又返回到原先的程序继续执行,这一过程称为中断。 中断流程如下页图所示 3、使用中断的好处 分时操作提高效率 CPU在启动外设后与外设同时工作。当外设的数据准备好向CPU发中断请求,CPU响应处理。CPU可让多个外设同时工作,这将加快数据传送速度、提高CPU的效率。 实现实时处理 实时控制时,现场各种信息可随时发出中断请求 故障自行处理 将计算机在运行的过程中常遇到的意外情况,如:电源突跳,存储器出错,运算溢出等设计成中断,计算机可利用中断系统自行处理或告警。4、与中断相关的基本概念 中断源 中断类型号 中断请求 中断响应 中断服务程序 中断返回5、中断系统的基本功能 (1)中断响应,中断服务,中断返回,中断屏蔽; (2)中断优先级排队; (3)中断嵌套。 注意: 这些功能是由软件与硬件共同构成的系统完成的。 本章讨论与8086/8088CPU相配合的中断系统1、外部中断(硬件中断) 不可屏蔽中断NMI 不能用软件屏蔽,CPU必须响应; 上升沿触发; 中断的类型号为2。 可屏蔽中断INTR IF=1,CPU响应中断;IF=0,CPU不响应; 高电平触发,高电平维持到CPU响应中断时结束; 中断类型号由中断控制器8259A或硬件电路提供。2、内部中断(软件中断) 由三种情况引起: 由软中断指令INTn引起 INTn指令,类型号n(0-255)。 由CPU运算错误引起 除法错中断:类型号0 溢出中断:类型号4,由INTO指令引起的中断;2、内部中断(软件中断)(续) 由调试程序debug设置的中断 单步中断: 类型号1,TF=1时产生(当前指令需执行完); Debug状态下的T命令执行时产生; 断点中断: 类型号3,INT3指令引起的中断,属于软件中断 Debug状态下由G命令设置,相当于是在程序的某个位置设置了一条INT3。引脚 INTR、INTA#、NMI 指令 INTn、INTO、IRET不同类型的中断处理过程略有不同,本节所介绍的内容主要针对可屏蔽中断的处理过程。 可屏蔽中断处理过程步骤: 中断请求 中断响应 保护现场 转入执行中断服务子程序 恢复现场 中断返回N1、CPU响应可屏蔽中断的条件 (1)外设提出中断申请; (2)本中断未被中断控制器屏蔽; (3)本中断优先级最高; (4)CPU允许中断;2、CPU响应可屏蔽中断的过程 CPU在每条指令的最后一个T周期,检测INTR,若为高电平,且IF=1,则CPU响应中断。 响应过程中自动依次完成以下工作: CPU向外设发两个/INTA,外设收到第2个/INTA后,立即往数据线上给CPU送中断类型号。 CPU从数据线上读取中断类型号; 将flags入栈; 保护现行程序运行结果产生的状态和控制标志。 关中断(清IF和TF) 为了防止在进入中断处理,但并未执行中断程序这段时间内又响应新的中断。 保护断点 将当前指令的下一条指令的CS和IP压入堆栈,使中断处理完成后能正确的回到原程序继续执行。 转入相应的中断服务子程序; 中断返回 从堆栈中弹出断点的地址和flags的内容,返回主程序的断点处,继续执行主程序。确定中断源的方法:查询中断和矢量中断。 查询中断:一种软件查询法,中断响应后,启动中断查询程序,依次查询哪个外设申请了中断,检测以后,转到此设备预先设置的中断服务程序处执行。这种中断处理过程称为查询中断。 特点:速度慢,且后检测的设备服务机会少。 矢量中断:中断响应后,外设中断接口电路将中断类型号送给CPU,CPU根据中断类型号找到对应的中断服务程序的入口地址送入CS或IP,然后转入相应的中断服务程序处执行。这种中断处理过程称为矢量中断,也叫向量中断。 特点:速度快。1、中断向量表 又称:中断服务程序的入口地址表。 中断服务程序的入口地址又称中断向量 8086在存储器最低的1KB(00000H~003FFH)空间内,存放256个中断的中断向量。 每个类型号的中断向量占4字节,高2字节存放段基址,低2字节存放偏移地址; 按照中断类型号的顺序依次将其中断向量存在1K的内存表中,格式如下:中断类型号n与中断向量的地址关系:n×4=中断向量地址 (4n和4n+1)→IP (4n+2和4n+3)→CS【例】某中断的类型号为68H,中断的操作过程如下: 步骤分析: 取中断类型号68H; 计算中断向量地址68H*4=1A0H; 取中断入口地址的偏移地址送入IP,段地址送入CS; 转向中断服务程序; 中断返回到INT68H指令的下一条指令。类型69H 中断向量用指令设置中断服务程序的入口地址表利用D