第三章中断技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

专用 中断向量 (5 个)
00008H 00004H
0 号向量(除法错)
00000H
CS IP
16 位
3.2.5 8086/8088系统的中断过程

中断指令译码或查询中断 形成或取得中断类型码 查向量表 保护现场 TF非0时保存TF 清IF、TF 转向中断服务程序 执行中断服务程序 恢复断点返回
3.2.4

中断服务程序的入口地址称为中断向量。在 IBM PC机中,存储器的最低地址区的1024个 字节(地址从00000H到003FFH)为中断向 量表,其中存放着256种类型中断服务程序的 入口地址(中断向量)。由于每个中断向量占 有4个字节单元,所以中断指令中指定的类型 号N需要自乘以4才能取得所指定类型的中断 向量,例如如果类型号为9,则与其相应的中 断向量存放在00024-00027单元中。除非特 别注明,类型号是以十六进制数形式表示的。

中断操作编程



3.3.3 8259A的控制字和初始化编程

需要CS#、A0、RD#、WR#和D4、D3的配合

内部寄存器的访问方法如下表:
CPU对8259A的读/写操作除信号作读取中断类型号的特殊 读操作之外,一般的读/写操作都是由、、、A0 这几个输 入信号控制。该部件的功能是接收CPU送来的命令,包括 初始化命令字和操作命令字,并把它们保存到有关的寄存 器中。该部件还能将8259A的状态信息传送到数据总线上。
⑦命令寄存器
8259A内部有7个8位的命令寄存器,被分为两组,第一组 命令寄存器共有4个,用来存储初始化命令字(ICW—— Initialization Command Word),分别称为ICW1~ICW4,这 4个初始化命令字用来对8259A工作方式和工作条件的设 置,要在上电时由程序设置好,在以后的工作过程中一般 就不再改变;第二组命令寄存器有3个,用来存储操作命 令字(OCW——Operation Command word),分别称为 OCW1~OCW3 ,这3个操作命令字用来动态地控制中断处 理过程,比如对中断的屏蔽操作等,并且它们可以被多次 设置。
可屏蔽中断的响应过程

关中断,保护断点。 保护现场。 开中断 具体中断处理 关中断 恢复现场 开中断、中断返回。
中断服务程序的结构:
push ax …… push bx sti …… cli pop bx …… pop ax sti iret ;保护现场
;开中断 ;中断处理 ;关中断 ;恢复现场


⑦WR:写信号,输入,低电平有效。 ⑧RD:读信号,输入,低电平有效。 ⑨A0:地址线,输入。该引脚与片选、 读/写信号联合使用,作为对8259A内 部端口寻址。 ⑩Vcc和GND:8259A的+5V电源和地 线。
7.3.4 8259A的编程

初始化编程

8259A开始工作前,必须进行初始化编程 给8259A写入初始化命令字ICW 在8259A工作期间 可以写入操作命令字OCW将选定的操作传 送给8259A,使之按新的要求工作 还可以读取8259A的信息,以便了解他的 工作状态
8259的工作原理
8259A 的引脚
CS WR RD D7 D6 D5 D4 D3 D2 D1 D0
CAS0 CAS1 GND
1
2 3 4 5
6 7 8 9 10 11 12 13 14
28 27 26 25 24 23 22 21 20 19 18 17 16 15
VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS2
8259A的内部结构
INTA 控制逻辑 D7~D0 数据 总线 缓冲器 读/写 控制 逻辑 级联 缓冲器 比较器 INT 中 断 服 务 寄 存 器 优 先 权 判 别 电 路 中 断 请 求 寄 存 器
RD WR A0 CS CAS0 CSA1 CAS2 SP/EN
IR0
IR7
中断屏蔽寄存器
①中断请求寄存器(IRR)
④中断屏蔽寄存器(IMR)
IMR寄存器中的内容置“1”,则表示对IRR寄存器的对应 位的中断源实施屏蔽,即禁止该对应位的IR提出中断请求
⑤级联缓冲器/比较器
用于多片级联以及数据缓冲方式。在级联方式中,主片和 从片之间将CAS0~CAS2互连成专用总线。主片将中断请求 被响应的从片的标志号ID通过CAS0~CAS2级联总线传送到 从片,通知中断被响应。从片收到标志号后,与自身的标 志号比较,如果相符,则在第二个周期把中断类型号送到 数据总线上去。 ⑥读写控制逻辑
8088
中断处理的二个总线周期
T1 CLK ALE INTA
AD7~AD0
动画
T2 T3 T4
T1
T2 T3 T4
中断号
CPU在当前指令的最后一个T周期采样INTR线,如发现中断请 求,同时满足响应条件,则进入二个连续的中断响应周期。 CPU在这二个总线周期发出二次INTA总线响应信号,中断源 必须在第二个总线周期的T3状态前将中断号送到数据线上。
3.3 中断优先级管理器8259A


8259A芯片是由美国Intel公司研制生产 的,功能强大。它可以对中断源进行优 先级判别、可以向CPU提供中断矢量号n, 还可以根据中断源需要屏蔽中断请求。 一片8259A可以管理8级中断源,并且 可通过级联扩展,最多可用9片管理64 级中断。 8259A可编程中断控制器,主要用于管 理外部中断请求。
003FFH 用户可用 中断向量 (224 个) 003FCH
255 号向量 ∶ 32 号向量 31 号向量
00080H 0007CH
系统保留 中断向量 (27 个)
∶ 5 号向量
00014H 00012H 0000CH
4 号向量(溢出) 3 号向量 2 号向量(非屏蔽) 1 号向量(单步)
中 断 向 量 表
补充:中断向量的修改

中断向量的修改方法是利ห้องสมุดไป่ตู้DOS功能调用 INT 21H中的35H号和25H号功能。修改 步骤有下列3步:



①用35H号功能,获取原中断向量,并保存在 字变量中。 ②用25H号功能,设置新中断向量,取代原中 断向量,以便当中断发生后,转移到新中断服 务程序中去。 ③在新中断服务程序执行完毕后,利用25号 功能恢复原中断向量。
用于存放来自IR线上正在请求服务的中断源,具有锁存功 能。IRR寄存器的8位(D0~D7)分别对应连接在IR0~IR7输 入线上的外设所产生的中断请求,哪一根输入线上有请求, 哪位就置“1”。
②优先级分析器(PR)
PR负责检查并确定IRR寄存器中置“1”位的中断源的优先 级。选择优先级最高的中断源,并为它向CPU提出申请, 在中断响应时将它送入中断服务寄存器ISR的对应位中。 ③中断服务寄存器(ISR):存放正在被服务的中断源。
3.2.2软件中断





类型0:在执行除法指令时,若除数为0 或商超过了寄存器所能表达的范围,则 产生一个向量号为0的内部中断,称为除 法错中断 类型1:单步中断。TF=1,单步中断; TF=0,正常运行 类型3:断点中断 类型4:溢出中断INTO INT N,包括dos和bios调用
内部中断的特点:
中断的过程
主程序 中断服务程序 中断请求
断点 IRET 中断请求可以来自处理器外部的中断源, 也可以由处理器执行指令引起: 例如执行INT n指令。
中断响应过程
当CPU响应一次中断时,也要和调用子 程序时类似地把返回地址(IP和CS) 保存入栈。除此之外,为了能全面地保 存现场信息,以便在中断处理结束时返 回现场,还需要把反映现场状态的标志 信息(PSW)保存入栈,然后才能转 到中断服务程序去执行。当然从中断返 回时,除要恢复(IP)和(CS)外, 还需要恢复(PSW)。
IF=0 IP,CS,FR进栈 取中断类型号n IP=[4*n+0] CS=[4*n+2] 0000:4*n+0 0000:4*n+1 0000:4*n+2 0000:4*n+3
内存
00 10 00 20
1000
2000
中断传送流程
8088cpu引脚
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 AD16 / S3 AD17 / S4 AD18 / S5 AD19 / S6 SS0* (HIGH) MN / MX* RD* HOLD (RQ)*/ GT0*) HLDA (RQ1* /GT1*) WR* (LOCK*) M / IO ( S2* ) DT / R* ( S1* ) DEN ( S0 ) ALE INTA TEST* READY RESET
①D0~D7:双向数据总线。CPU用来传送命令,接收状 态和读取中断向量。
②CAS0~CAS2:级联总线,双向。主控8259A与从控 8259A的连接线。主控时该总线为输出,从控时则为 输入。
CAS0 ③IR0~IR7:外设中断请求线,输入。从外设送来的中 CAS1 断请求由这些引脚输入到8259A。在边沿触发方式中 IR输入应有由低到高的上升沿,此后保持为高,直到 被响应。在电平触发方式中,IR输入应保持高电平直 到被响应为止。
;开中断 ;中断返回
中断控制方式的优点

分时操作 实时处理 故障处理
3.2 PC机的中断系统
非屏蔽中断源
NMI
可屏蔽中断源
内部中断


CPU 中断逻辑
除法错中断 INTR 8259A 指令中断 中断 溢出中断 INTA 控制器 单步中断
INT N 指令
INTO 指令
断 点 中 断



④SP/EN:主从定义/缓冲器方向引脚,是一 个双功能引脚。在非缓冲方式中用作输入线, 指定8259A为主控制器(=1)或是从控制器 (=0)。在缓冲方式中用作输出线,控制缓 冲器的接收/发送。 ⑤INTA:中断响应引脚,输入。接收CPU发 送来的2个中断响应脉冲,第一个用来通知 8259A,其中断请求已被响应;第二个作为读 操作信号,读取8259A所提供的中断类型号。 ⑥CS:片选信号,输入,低电平有效。注意, 不论该信号是否有效,都不会影响对8259A读 取中断类型号。
第三章 中断技术

本章要点


中断的基本概念 8086/8088的中断系统 可编程中断控制器--8259A 现代微机的中断系统
中断概述

中断是指正常执行的程序被某种临时发 生的事件所打断,当前程序暂时中止, 处理器转去处理临时发生的事件,处理 完毕再返回继续执行暂时中止的程序。 就是说,在当前程序中插入一段别的程 序——中断服务程序或中断处理程序。
(1) 中断类型码包括在指令中指定的或是 隐含的; (2) 不执行中断的响应周期; (3) 除单步中断外,内部中断均不屏蔽; (4) 除单步中断优先权最低外,所有内部 中断优先权均高于外部。
3.2.3中断优先权

从高到低: 除法错溢出中断指令(INTO)中断指 令INT N非屏蔽中断NMI可屏蔽中 断INTR单步中断
可屏蔽中断
可屏蔽中断就是用户可以控制的中断, 其途径是通过对CPU内的中断允许触发器 IF的设置来禁止和允许CPU响应中断。可 屏蔽中断由8086CPU的INTR管脚引入。这 种中断请求需要设备提供中断类型号, CPU响应中断后,取中断类型号的4倍作 为中断服务入口地址表的地址,通过查 表得到相应的中断服务程序首地址,转 去执行相应的中断服务程序。

步 法 中 非屏蔽中断 错 断 可屏蔽中断 误
除 外部中断
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
外 设 中 断 源
3.2.1硬件中断


NMI、INTR两个引脚 NMI不受IF位的控制,边沿触发 INTR受IF位的控制(IF=1,响应中断; IF=0,不响应),电平触发。 STI指令使IF=1 ,CLI指令使IF=0
相关文档
最新文档