第8章中断控制接口
1 第8章 中断控制接口
2 第8章中断系统 教学重点 8086/8088中断系统 8259A的中断工作过程和工作方式 中断服务程序的编写
2 第8章 中断系统 教学重点 ◼ 8086/8088 中断系统 ◼ 8259A的中断工作过程和工作方式 ◼ 中断服务程序的编写
中断的定义 ■CPU执行程序时,由于发生了某种随机 的事件(外部或内部),引起cPU暂时中断 正在运行的程序,转去执行一段特殊的 服务程序(称为中断服务程序或中断处理 程序),以处理该事件,该事件处理完后 又返回被中断的程序继续执行,这一过 程称为中断
3 中断的定义 ◼ CPU执行程序时,由于发生了某种随机 的事件(外部或内部),引起CPU暂时中断 正在运行的程序,转去执行一段特殊的 服务程序(称为中断服务程序或中断处理 程序),以处理该事件,该事件处理完后 又返回被中断的程序继续执行,这一过 程称为中断
5.18086/8088中断系统 8088的中断系统采用向量中断机制 能够处理256个中断 用中断向量号0~255区别 可屏蔽中断还需要借助专用中断控制 器Inte8259A实现优先权管理
4 5.1 8086/8088中断系统 ◼ 8088的中断系统采用向量中断机制 ◼ 能够处理256个中断 ◼ 用中断向量号0~255区别 ◼ 可屏蔽中断还需要借助专用中断控制 器Intel 8259A实现优先权管理
2.中断源 引起cPU中断的事件中断源。例如: 外设——请求输入输出数据,报告故障等 ■事件——掉电、硬件故障、软件错误、非法操作、定时 时间到等 中断源分为:外部中断、内部中断 内部中断:CPU内部执行程序时自身产生的中断 外部中断:CPU以外的设备、部件产生的中断 n8086/8088的外部中断信号:INTR、NMI ■INTR可屏蔽中断请求,高电平有效,受I标志的控 制。IF=1时,执行完当前指令后CPU对它作出响应。 NMI非屏蔽中断请求,上升沿有效,任何时候CPU都 要响应此中断请求信号 5
5 2. 中断源 ◼ 引起CPU中断的事件——中断源。例如: ◼ 外设——请求输入输出数据,报告故障等 ◼ 事件——掉电、硬件故障、软件错误、非法操作、定时 时间到等 ◼ 中断源分为:外部中断、内部中断 ◼ 内部中断:CPU内部执行程序时自身产生的中断 ◼ 外部中断:CPU以外的设备、部件产生的中断 ◼ 8086/8088的外部中断信号:INTR、NMI ◼ INTR——可屏蔽中断请求,高电平有效,受IF标志的控 制。IF=1时,执行完当前指令后CPU对它作出响应。 ◼ NMI——非屏蔽中断请求,上升沿有效,任何时候CPU都 要响应此中断请求信号
51.180868088的中断类型 非屏献内部中断 屏蔽中断源 除法错中断 指令中断 CPU IR 中国=溢出中断 B259A 单步中断 中断 IR 制器 外部中断 NNNo,非屏蔽中断 01234567 IR IR IR IR 外设中断源 指令指令 IR 可屏蔽中断 IR
6 5.1.1 8086/8088的中断类型 非屏蔽中断源 中断逻辑 INTO 指令 单步 中断 除法 错误 INT N 指令 CPU INTR NMI 可屏蔽中断源 8259A 中断 控制器 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 外 设 中 断 源 INTA ◼ 内部中断 ◼ 除法错中断 ◼ 指令中断 ◼ 溢出中断 ◼ 单步中断 ◼ 外部中断 ◼ 非屏蔽中断 ◼ 可屏蔽中断
1.内部中断 内部中断是由于8086/8088内部执行程序出现 异常引起的程序中断 除法错中断:向量号为0 指令中断:向量号为n 断点中断:向量号为3 溢出中断:向量号为4 单步中断:向量号为1 内部中断的中断向量号已定 7
7 1. 内部中断 内部中断是由于8086/8088内部执行程序出现 异常引起的程序中断 ◼ 除法错中断:向量号为0 ◼ 指令中断:向量号为n ◼ 断点中断:向量号为3 ◼ 溢出中断:向量号为4 ◼ 单步中断:向量号为1 内部中断的中断向量号已定
2.外部中断 外部中断是由于80868088外部提出中断请 求引起的程序中断 非屏蔽中断:向量号为2 外部通过非屏蔽中断NMI请求,必须响应 n非屏蔽中断主要用于处理系统的意外或故障 可屏蔽中断:向量号来自中断控制器 n外部通过可屏蔽中断INTR请求,由I控制是 否响应;响应时产生ⅠNTA信号 可屏蔽中断主要用于与外设交换数据 IF控制可屏蔽中断的响应 8
8 2. 外部中断 外部中断是由于8086/8088外部提出中断请 求引起的程序中断 ◼ 非屏蔽中断:向量号为2 ◼ 外部通过非屏蔽中断NMI请求,必须响应 ◼ 非屏蔽中断主要用于处理系统的意外或故障 ◼ 可屏蔽中断:向量号来自中断控制器 ◼ 外部通过可屏蔽中断INTR请求,由IF控制是 否响应;响应时产生INTA*信号 ◼ 可屏蔽中断主要用于与外设交换数据 IF控制可屏蔽中断的响应
中断标志IF的状态 IF=0:可屏蔽中断不会被响应 n关中断、禁止中断、中断屏蔽 ■系统复位,使IF=0 任何一个中断被响应,使IF=0 执行指令CLI,使IF=0 IF=1:可屏蔽中断会被响应 开中断、允许中断、中断开放 执行指令ST,使IF=1 执行指令IRET恢复原IF状态 9明确I标志的状态是关键
9 中断标志IF的状态 ◼ IF=0:可屏蔽中断不会被响应 ◼ 关中断、禁止中断、中断屏蔽 ◼ 系统复位,使IF=0 ◼ 任何一个中断被响应,使IF=0 ◼ 执行指令CLI,使IF=0 ◼ IF=1:可屏蔽中断会被响应 ◼ 开中断、允许中断、中断开放 ◼ 执行指令STI,使IF=1 ◼ 执行指令IRET恢复原IF状态 明确IF标志的状态是关键
5128086/8088的中断响应过程 匚现行指令 查询中断的顺序, 决定了各种中断源的优先权 歌件中>口软件中断 除法错中断 高 NMI 指令中断 溢出中断 INTR 非屏蔽中断 可屏蔽中断 TF=l 低 单步中断 匚下条指令
10 5.1.2 8086/8088的中断响应过程 NMI N 软件中断 INTR TF=1 中断响应周期 读中断向量号 下条指令 现行指令 IF=1 N N N N Y Y Y Y Y 查询中断的顺序, 决定了各种中断源的优先权 ◼ 软件中断 ◼ 除法错中断 ◼ 指令中断 ◼ 溢出中断 ◼ 非屏蔽中断 ◼ 可屏蔽中断 ◼ 单步中断 高 低