当前位置:文档之家› 第八章 中断技术 微机基础与接口技术 教学课件

第八章 中断技术 微机基础与接口技术 教学课件


8.2
2020/9/26
图8-2 8086/88的中断向量表
8.2
8086/8088 中断系统有256个中断,每个中断向量占 四个存储单元,共需占用1K字节的存储空间来存放 中断向量。PC系列微机把中断向量表存入存储器的 最低端1K字节,即从00000H~003FFH的存储空间 中。
中断类型号n×4
3.中断向量的修改
用户利用系统中断资源来开发可屏蔽中断服务程序的常用方法
用户编程实现把系统提供的中断服务程序入口地址 指向自己开发的中断服务程序。 方法:用户中断服务程序的 CS:IP加入中断向量表
2020/9/26
8.3 可编程中断控制器8259A
PC采用中断控制器8259A协助CPU完 成对外部硬件中断的管理 工作 ———— 具有三个主要方面的功能:
MOV AX,OFFSET INT_PRO
STOSW
;装入INT_PRO子程序的偏移地址
MOV AX,SET INT_PRO
STOSW
; 装入INT_PRO子程序的段地址
2020/9/26
3)使用DOS系统功能调用装入
8.2
INT 21H的25H/35H号功能也提供了装入/保存中断向量的功能。
PUSH DS
中断源的中断屏蔽触发器可以设置是否发出 这一请求
2020/9/26
2. 中断响应
8.1
响应中断请求的条件:
这一请求没有被中断管理机构屏蔽 这一请求的中断优先级最高; 这一请求没有超过系统允许嵌套的层数 CPU允许中断 且CPU执行完当前指令 响应时系统的操作:执行中断隐指令 保存程序计数器PC和标志寄存器内容
以防止CPU再次响应。
2020/9/26
6.总线连接方式
8.3
缓冲方式和非缓冲方式两种
1)缓冲方式 8259A通过总线驱动器和系统数据总线连接
SP / EN 作为总线驱动器的启动信号输出中断类型号
2)非缓冲方式
2020/9/26
8259A数据线与系统数据总线直接相连
7.查询中断方式
8.3
8259A也可以用查询方式来检查请求中断的设备。当 CPU关中断时,中断输入信号将不起作用,那么对设备的 服务就可通过软件查询来实现。
2020/9/26
3. 中断处理
8.1
用户编程完成的操作:
1) 关中断、保护现场
2)开中断
允许嵌套
3)中断服务 4)关中断 恢复断点和现场时不被中断
5)恢复现场、中断结束 6)中断返回
2020/9/26
8.2 8086/8088的中断系统
8086/8088系统的中断类型可以有256个, 用一个8位二进制码表示。 划分为硬件中断(外部中断)
二、中断的基本原理与概念
8.1
1. 中断屏蔽 中断分为两大类:
IF:STI 、CLI
不可屏蔽中断 (NMI)
可屏蔽中断(INTR )
2020/9/26
2. 中断优先级
8.1
系统根据引起中断事件的重要性和紧迫程度,
硬件将中断源分为若干个级别,称作中断优先 级。
CPU按照由高到低的顺序响应。高级中断可以 打断低级中断处理程序的运行,优先执行高级中 断处理程序。
不利于多片级联
2)特殊完全嵌套方式
在CPU中断服务期间,除了允许高级中断请求进 入外,还允许同级中断请求进入,从而实现了对同 级中断请求的特殊嵌套。
2020/9/26
用于多片级联
8259的多片级联
8.3
主控8259A向CPU申请
从控8259的INT输出端接 到主控制器的IR输入端。
如果某一从属8259A的 中断请求被CPU响应,在
MOV AX, SEG INT_PRO ;取INT_PRO子程序的段基址
MOV DS, AX
MOV DX, OFFSET INT_PRO ;取INT_PRO子程序的偏移地址
MOV AL, 60H
;中断类型号
MOV AH, 25H
;25H号DOS功能调用
INT 21H
POP DS
2020/9/26
8.2
3. 中断嵌套
优先级更高的中断打断当前正在执行的级别较低的中断
2020/9/26
三、中断的过程
8.1
中断是一个软硬件协调工作的过程,整个工作过 程可分为中断请求、中断响应和中断处理。
1.中断请求
中断请求是由中断源发出并送给CPU的控制信 号,由中断源设备通过置"1"设置在接口卡上的中 断触发器完成。
中断响应周期里,主控 8259A将其对应IR输入端的 编码作为对从属8259A进行 识别的地址,送到CAS2 ~ CAS0级联线上,被选中的 从属8259A将接收INTA信
号,并把其中断向量送上 数据总线。
CPU +5 V
8259A
INTA IN T
C A S0 C A S1 C A S2
IR0
IR1
查询中断的命令是通过OCW3中P=1发出的,8259A接 到查询命令后,把随后的一次CPU读操作当作中断响应 信号,如果有中断请求,就把ISR相应的位置位,并读出 查询字,从而判断该中断级别,并编程实现中断服务程序 的转移。
2020/9/26
三、8259A的命令字 初始化命令字ICW1~ICW4 操作命令字OCW1~OCW3
IR2
IR3
IR4
SP / EN
IR5
IR6
IR7
8259A
INTA
IR0

IN T
C A S0 C A S1 C
8259A
INTA IN T
C A S0 C A S1 C A S2
IR0 IR7 SP / EN

在中断服务结束时,若不是自动EOI方式必须发出两个EOI命令,一个给从片, 一个给主片,清除各自的ISR位。
8.1
为了使系统的各类中断有序地进行,需对中断划分优先级
内部中断的优先级别最高(单步中断除外),其次是不可屏 蔽中断(NMI)和可屏蔽中断,单步中断的优先级别最低。
2020/9/26
三、中断向量表 1.中断向量与中断向量表
8.2
如何根据不同的中断源进入相应的中断服务子程 序,每一个中断服务程序都有一个唯一确定的入口 地址。
1)接收外部设备的中断请求 2)实现优先级排队管理 3)提供中断类型号
2020/9/26
一、8259A内部结构和引脚功能
8.3
D7~ D0
数据总线 缓冲器
INT A INT 控制逻辑
RD WR CS A0
CAS0 CAS1 CAS2 SP/ EN
读 /写 控制电路
级联缓 冲 /比 较 器
中断 服务 寄存器
2020/9/26
3.中断屏蔽方式
8.3
普通屏蔽方式和特殊(特定)屏蔽方式
1)普通屏蔽方式
通过8259A的中断屏蔽寄存器(IMR) 来实现对中断请求IRi的屏蔽。
由OCW1 设置
2)特殊屏蔽方式 (SMM)
实现低优先级中断请求中断正在服务的高优先级中断
2020/9/26
通过OCW3来设置或取消
4.中断结束方式
1.中断优先权方式
固定优先权方式和自动循环优先权方式
1)固定优先权方式
由高到低的优先级顺序是:IR0, IR1, IR2, …, IR7
2)自动循环优先权方式
2020/9/26
IR0~IR7的优先权级别可以改变
2.中断嵌套方式 一般完全嵌套和特殊完全嵌套
8.3
1)一般完全嵌套方式
中断优先权管理为固定方式, 即IR0优先权最高,IR7优先权最低
8.3
CPU为某个中断请求服务,中断对应的ISR 中的Di位被置1,使比它优先级低的中断请求 无法得到响应。中断结束时,应及时清除中 断服务标志位。
三种中断结束方式
1)自动结束方式
在中断响应过程中由硬件自动完成ISR中为“1”位 的清除, 所以这不是中断服务子程序的真正结束 。
2020/9/26 只适合用在没有中断嵌套的场合
查表,从低到高地址取连续4个字节
从高到底的这4个字节即为CS:IP
2020/9/26
2020/9/26
2. 中断向量的装入
8.2
系统设置的中断服务程序,其中断向量由 系统负责装入。
用户开发的中断系统,在编写中断服务程序 时,其中断向量由用户负责装入。
2020/9/26
用户程序三种方式装入中断向量 :
8.2
1)使用MOV指令直接装入
MOV MOV MOV
MOV MOV MOV MOV
AX, 0
;中断向量表的段基址为0000H
DS, AX
BX, 60H*4 ;60H号中断向量在向量表中存放的单 ;元地址
AX, OFFSET INT_PRO
[BX], AX ;装入INT_PRO子程序的偏移地址
AX, SEG INT_PRO
[BX+2], AX ;装入INT_PRO子程序的段地址
2020/9/26
8.2
2)使用串存指令直接装入
CLD
;方向标志置DF=0,串操作时,修改地址指针
;增量
MOV AX,0 ; 中断向量表的段基址为0000H
MOV ES,AX
MOV DI,60H*4 ;60H号中断向量在向量表中存放的单元地址
是用以提高计算机工作效率的一项重要技术
2020/9/26
一、中断的基本概念
8.1
1.中断及中断源
中断是指CPU正在运行程序时,由于某些事件或状态的出 现,使CPU暂时停止正在运行的程序,转到为这些事情或状 态服务的程序中去,服务完毕后,再返回被打断的程序继续 执行。
相关主题