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 查询中断的顺序, 决定了各种中断源的优先权 ◼ 软件中断 ◼ 除法错中断 ◼ 指令中断 ◼ 溢出中断 ◼ 非屏蔽中断 ◼ 可屏蔽中断 ◼ 单步中断 高 低