中断概述和中断处理过程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档