微机原理7。中断技术
中断技术
8086系统中的中断技术是由CPU中断管理机制、中断控制器8259A和中断处理程序共同实现的,统称为中断系统 中断概述
中断,是指CPU在执行程序的过程中,由于某种外部或内部事件的作用(如外部设备请求与CPU传送数据或CPU执行程序出现了异常),强迫CPU停止当前正在执行的程序,转去为该事件服务,待事件服务结束后,能自动地返回到被中断的程序中继续执行的操作
采用中断后,CPU平时可以执行主程序,只有当输入设备将数据准备好了,或者输出缓冲器空了,才向CPU提出中断请求 中断源和中断分类
引起中断的原因或能发出中断请求的来源称为中断源
8086有两种中断源:
一种是外部中断或硬件中断,它们从CPU的不可屏蔽中断引脚NMI和可屏蔽中断引脚INTR引入;
另一种为内部中断或软件中断,是为解决CPU运行过程中出现的一些意外事件或便于程序调试而设置的
中断向量表中断响应和返回 中断向量表 中断优先级和中断嵌套
CPU必须按中断源的重要性和实时性等,为它们排出一个响应的次序,这个响应次序称为中断优先级
CPU正在执行优先级较低的中断服务程序时,如果有优先级较高的中断源提出请求,CPU会将正在处理的中断暂时挂起,先为优先级高的中断服务,服务结束后再返回到刚才被打断的较低级的中断,这就是 中断嵌套 中断处理的一般过程中断请求
外设需要CPU服务时,首先要发出一个有效的中断请求信号送到CPU的中断输入端
中断请求信号分为边沿触发和电平触发两种 中断源识别
软件判优和硬件判优
硬件判优是指利用专用的硬件电路或中断控制器来安排各中断源的优先级别 中断响应
响应中断时:
(1)保护硬件现场,即FLAGS (PSW)。(2)保护断点。(3)获得中断服务程序入口。 中断处理
中断处理由中断服务子程序完成 保护软件现场:保护软件现场是指把中断服务子程序中要用到的寄存器的原内容压入堆栈保存起来 开中断:CPU响应中断时会自动关闭中断(使IF=0) 执行中断处理程序:不同的中断,其中断处理程序也各不相同 关中断:确保有效地恢复被中断程序的现场 恢复现场:把所保存的有关寄存器内容按压栈的相反顺序从堆栈中弹出 中断返回
需执行中断返回指令IRET,其操作正好是CPU硬件在中断响应时自动保护硬件现场和断点的逆过程
即CPU会自动地将堆栈内保存的断点信息和FLAGS弹出到IP、CS和FLAGS中,保证被中断的程序从断点处继续往下执行。
8086/8088中断系统
CPU可根据中断类型码的不同来识别不同的中断源
内部中断
内部中断是CPU执行了某条指令或者软件对标志寄存器中某个标志位进行设置而产生的 除法出错中断——0型中断 单步中断——1型中断 断点中断——3型中断 溢出中断——4型中断 用户自定义的软件中断——n型中断 外部中断
是由外部硬件或外设接口产生的 非屏蔽中断 可屏蔽中断 中断向量表
每个中断源都有一个与它相对应的中断类型码
8086/8088系统规定所有中断服务子程序的首地址都必须放在一个称为中断向量表的表格中
8086/8088CPU的中断响应过程
进入中断服务子程序后,首先要保护在中断服务子程序中要使用的寄存器内容,然后进行相应的中断处理,在中断返回前恢复保护的寄存器内容,最后执行中断返回指令IRET。IRET的执行将使CPU按次序恢复断点处的IP、CS和标志寄存器,从而使程序返回到断点处继续执行
可编程中断控制器8259A
可编程中断控制器8259A能管理输入到CPU的多个中断请求,实现中断优先权判别,提供中断矢量和屏蔽中断等功能 内部结构
中断管理方式
8259A对中断优先级的设置方式有一般完全嵌套、特殊完全嵌套、优先级自动循环和优先级特殊循环4种方式 中断屏蔽方式
普通屏蔽和特殊屏蔽 中断结束管理
中断结束管理就是用不同方式使ISR相应位清零,并确定随后的优先权排队顺序。 连接系统总线的方式
8259A与系统总线的连接分为缓冲方式和非缓冲方式。 中断请求触发方式
电平触发和边沿触发