中断概述和中断处理过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第23课中断概述可屏蔽中断处理过程
教学目的:了解中断的相关概念,掌握可屏蔽中断的处理过程。
教学重点:中断响应过程、中断向量和中断服务过程。
教学难点:中断向量。
授课内容:
一、中断概念
1.中断源
2.中断响应
3.中断向量表
4.中断优先级
5.中断屏蔽
二、中断分类
8086/8088有一个强有力的中断系统,可以处理256种不同的中断,256种中断可以分为两大类:外部中断和内部中断。
1.外部中断
也称为硬件中断,是由外部的硬件产生的。分成不可屏蔽中断请求和可屏蔽中断请求。
2.内部中断
又称为软件中断。通常有三种情况引起:由中断指令INT引起的中断;由CPU 的某些运算错误引起的中断;由调试程序debug设置的中断。
三、CPU响应中断过程
可屏蔽中断处理的过程一般分成几步:中断请求;中断响应;保护现场;转入执行中断服务子程序;恢复现场和中断返回。
CPU响应中断要有三个条件:
外设提出中断申请
本中断位未被屏蔽
中断允许
CPU在响应外部中断,并转入相应中断服务子程序的过程中,自动依次做以
下工作:
(1)从数据总线上读取中断类型号,将其存入内部暂存器。
(2)将标志寄存器PSW的值入栈。
(3)将PSW中的中断允许标志IF和单步标志TF清0,以屏蔽外部其它中断请求,及避免CPU以单步方式执行中断处理子程序。
(4)保护断点。
(5)根据中断类型号到中断向量表中找到中断向量,转入相应中断服务子程序。
(6)中断处理程序结束以后,从堆栈中依次弹出IP、CS和PSW,然后返回主程序断点处,继续执行原来的程序。
四、中断向量表
寻找中断源可以用查询中断及矢量中断两种方法。
1.中断向量表
又称中断服务程序入口地址表。8086允许处理256种类型中断,对应类型号为0~FFH。
2.中断向量的设置
供用户使用的中断类型号,它可由用户定义为软中断,由INT n指令引用;也可通过1NTR端直接接入,或通过中断控制器8259A引入可屏蔽硬件中断。有两种方法可将中断服务程序的入口地址置入中断类型号n所对应的中断向量表中。一种方法用指令来设置,另一种方法利用DOS功能调用来设置。
设置中断向量:预置AL=中断类型号
DS:DX=中断服务程序入口地址
AH=25H
执行: INT 21H
取中断向量:预置AL=中断类型号
AH=35H
执行: INT 21H
返回: ES:BX=中断服务程序人口地址
3.中断类型号的获取
(1)对于除法出错,单步中断,不可屏蔽中断NMI,断点中断和溢出中断,CPU 分别自动提供中断类型号0~4。
(2)对于用户自己确定的软件中断INT n,类型号由n决定。
(3)对外部可屏蔽中断INTR,可用硬件电路设计产生中断类型号。
(4)对外部可屏蔽中断INTR,可以用可编程中断控制器8259A获得中断类型号。
4.中断主程序的初始化
(1)设置中断向量。
(2)设置8259A的中断屏蔽寄存器的中断屏蔽位。
(3)设置CPU中断允许位标志IF(开中断STI)。
五、中断服务子程序
(1)程序开始必须保护中断现场,可通过一系列PUSH指令将CPU各寄存器的值入栈保护。
(2)若允许中断嵌套,则用STI指令来设置开中断,使中断允许标志IF=1。
(3)执行中断处理程序。
(4)用CLI指令来设置关中断,使中断允许标志IF=0,禁止其他中断请求进入。
(5)给中断命令寄存器送中断结束命令E0I,使当前正在处理的中断请求标志位被清除,否则同级中断或低级中断的请求仍会被屏蔽掉.
(6)恢复中断时的现场,通过一系列POP指令将CPU各寄存器的值恢复。
(7)用中断返回指令IRET返回主程序,此时堆栈中保存的断点值和标志值分别装入IP、CS和PSW。
六、中断响应时序
七、作业
7.1, 7.4, 7.9, 7.10