2019最新第六章中断系统化学
微机原理第6章 中断系统.ppt
不可屏蔽中断
•中断分类图
• 含义:不能用软件来控制是否允许中断的 一种外部中断。 • 常见NMI中断有: (1)电源掉电 (2)存储器检验出错 (3)总线奇偶错等。
可屏蔽中断
•中断分类图
• 含义:可用软件控制是否允许中断的外部 中断。即STI使IF=1,允许中断;CLI使 IF=0,禁止中断。
• 常见INTR中断有: 所有外部设备中断如键盘、鼠标、打印机、 显示器、声卡、CD-ROM等
• 示意图
6.2 可编程中断控制器8259A
• 基本情况:
(1)8位可编程中断控制器,又称优先级控制器 (2)处理8级向量优先级中断 (3)具有单一+5V供电 (4)8259A芯片级联组成强大的中断管理系统(多至
64级外部中断)。 (5)优先级方式可编程 (6)多级中断管理
• 主要内容
一、内部结构及工作原理 二、引脚信号 三、工作方式 四、编程方法
(2)求中断服务程序所在段的段基地址
段选择子为 :0013H=0000 0000 0001 0 011 B TI=0,段描述符在GDT中,RPL=11为普通用户程序请求, 索引值 =0000 0000 0001 0 B 所以中断描述符描述的中断服务程序所在段描述符在GDT中的位置 为: 索引值×8+GDT首地址=
0000 0000 0001 0000B+00500000H=00500010H 因此,段描述符为:39 18 40 42 34 00 00 96 H 段基地址=39423400H
(3)合成物理地址
服务程序入口地址=对应段的段基地址+偏移地址
=39423400H+00422012H=39845412H
解:
《微机原理及接口技术》第六章
2、CPU对中断的响应
关中断:CPU响应中断后,发中断响应(INTA)信号的同时,内部自动实现关中断 保留断点:封锁IP+1,入栈保存CS:IP。 保护现场:由中断服务程序先将有关REG入栈保存。
给出中断入口、转相应的中断服务程序:中断服务程序起始地址,执行中断服务。
恢复现场:将中断服务程序入栈保存的REG内容弹出,恢复现场。 开中断与返回:中断服务的最后一条指令,出栈恢复CS:IP,恢复主程序运行,使IF自动恢
第十章
J X G
微型计算机开发应用
1/27
J X G
微机原理及接口技术 第六章、中断控制系统
本章要点:
J X G
中断的基本概念 中断处理过程 可编程中断控制器8259A的结构、功能 可编程中断控制器8259A的应用
2/27
J X G
微机原理及接口技术 6.1
一、中断的基本概念
中断系统
J X G
微机原理及接口技术
三、外部中断
8086芯片设置有两条中断请求信号输入引脚:NMI和INTR引脚,用于外部中断 源产生的中断请求,可分为以下两种: 1、可屏蔽中断 INTR (18脚) INTR线上的请求信号是电平触发的。当IF=0,CPU中断不响应,这种情况称为 可屏蔽中断。可屏蔽中断通过指令设置IF中断标志位,达到控制的目的。 STI CLI ;IF←1,开中断,CPU才能响应INTR线上的中断请求。 ;IF←0,关中断,CPU不响应INTR线上的中断请求。
对于系统专用中断,系统将自动提供0~4中断类型号,保证系统自动转到处理程序。
J X G
对于可屏蔽中断INTR,外接口电路产生中断类型号。目前8259A产生。
第六章1-3讲 可编程中断控制器
天津工业大学
SP/EN:双功能信号。 缓冲方式时, EN 为输出,控制缓冲 器传输的方向。 EN=0,表示允许8259A通过缓冲器输出。 EN=1,表示CPU写8259A。 非缓冲方式时,SP为输入,表示主从 关系, SP=1,表示主片, SP=0,表示从片。
天津工业大学
④控制逻辑:
向CPU发送中断请求信号,处理CPU的中断应 答信号INTA,直接连接到CPU的中断请求输入端 INTR. INT:8259A向CPU发出的中断请求信号,高电平 有效。 INTA:CPU响应中断时,约两个总线周期,称为 响应周期。用来对8259A的中断申请进行响应, 在中断响应周期中产生两个INTA信号, 第一个用来使中断请求服务寄存器相应位置1, 第二个INTA信号,8259A向CPU提供中断矢量号。
天津工业大学
⑦ 中断服务寄存器(ISR) 记录优选后的中断申请标志(正在执行 的中断服务程序其ISR相应位置1),后来 的中断申请在优先排队电路的控制下与当 前正在执行的中断过程进行优先级排队, 以决定是否实现中断嵌套。
天津工业大学
⑧中断屏蔽寄存器IMR 由CPU设置,以决定某个中断源是否被屏 蔽,当该寄存器中某一位置“1”时,表示 禁止该中断请求进入系统。通过IMR寄存器 可实现对各级中断的有选择的屏蔽。
• ♣SP/EN在非缓冲方式下,规定(SP=1)时该
8259A是主片, (SP=0)时该8259A是从片。
天津工业大学
第一个周期 T1 T2 T3 T4
CLK ALE LOCK INTA D0~D7 SP/EN CAS0~CAS2 IR0~IR7 INT
第二个周期 T1 T2 T3 T4
CPU响应周期
天津工业大学
6.5.3 8259A的优先级管理方式
第6章 中断系统
中断系统的功能
CPU响应中断时,会停止当前执行程序,转去执行中断处 理程序,原程序被打断的地方称为“断点”。
断点地址是指中断处理程序结束后,返回原程序恢复执 行的第一条指令的地址,又称“返回地址”。
现场是指进入中断服务程序之前CPU各个寄存器的状态。
正常程序 CS : IP 断点 CS : IP+1 继续执行 中断服务程序
中断系统的功能
2. 链式优先权排队电路(应答方式)
外设1
+5V D7 ~ D0 INTA INTR IOR IOW
外设2
IEI 接口2 IEO
SEL1 SEL2
外设3
IEI 接口3 IEO
SEL3
IEI 接口1 IEO
※ 电路说明
① 每个接口有一个中断允许输入IEI和中断允许输出IEO, 只有IEI为高电平时才允许该接口芯片发中断请求; ② IEO=IEI•INT INT表示该设备有中断请求; ③ 每个接口芯片的中断请求输出为OC门,具有负逻辑的 “线或”关系; ④ 响应中断时由INTA从接口读取中断矢量。 计算机原理讲义
中断 处理
返回断点
3. 中断服务完成时将中断申请信号撤销 4. 中断服务完成后恢复现场和断点,返回原程序 计算机原理讲义
中断系统的功能
(二)对中断进行控制
1. 对中断申请进行控制 例1 一个输入设备的中断接口电路
三 态 缓冲器 D7~D0 INTR IOW A15 ~ A0 IOR INTA 地址 译码 器 三 态 缓冲器 B Q R C D 中断类型 码(0FH) D7~D0
中断系统
第六章 中断系统
计算机原理讲义
中断的作用
第6.1节 计算机中断系统
复位和中断
6.1 复位状态
为什么需要复位? 复位电路允许很容易地将控制器置于一个预定的缺省状态。 复位后单片机处于什么状态?
在进入复位状态时,将发生以下过程: ➢CIP-51 停止程序执行,令PC=0x0000 ➢特殊功能寄存器(SFR)被初始化为所定义的复位值 ➢外部端口引脚被置于一个已知状态,I/O端口锁存器的 复位值为0xFF,外部引脚处于高电平状态 ➢中断和定时器被禁止
6.2.6外部CNVSTR 引脚复位
向CNVRSEF 标志(RSTSRC.6)写‘1’可以将外部 CNVSTR 信号配置为复位源。CNVSTR信号可以出现在P0、 P1、P2 或P3 的任何I/O 引脚。
注意:交叉开关必须被配置为使CNVSTR 信号接到正确的端 口I/O。应该在将CNVRSEF 置‘1’之前配置并使能交叉开关。 当被配置为复位源时,CNVSTR 为低电平有效。
图6-2 复位时序图
在退出上电复位状态时,PORSF 标志 (RSTSRC.1)被硬件置为逻辑‘1’。PORSF 被任何其它复位清0。
由于所有的复位都导致程序从同一个地址 (0x0000)开始执行,软件可以通过读 PORSF 标志来确定是否为上电导致的复位。 在一次上电复位后,内部数据存储器中的内容 应被认为是不确定的。
下面将对每个复位源进行说明。首先介绍一下复位中使用 的寄存器:复位源寄存器。
复位源寄存器RSTSRC是一个不允许进行读/修改/写操作的 寄存器。
特殊功能寄存器RSTSRC:复位源寄存器
位7: 保留 位6: CNVRSEF:转换启动复位源使能和标志。
写: 0:CNVSTR 不是复位源。 1:CNVSTR 是复位源(低电平有效)。
注意:即使内部数据存储器的内容未因掉电复位而 发生变化,也无法确定VDD 是否下降到维持数据有 效所需要的电压以下。如果PORSF 标志被置‘1’, 则数据可能不再有效。
第六章 MCS-51单片机的中断
TF1
T1 请求
TR1
T1 工作
TF0
T0 请求
TR0
T0 工作
IE1
INT1 请求
IT1
INT1 方式
IE0
INT0 请求
IT0
INT0 方式
有 /无
启 /停
有 /无
启 /停
有 /无
下沿/ 低
电平
有 /无
下沿/低
电平
2、在每条指令结束时,CPU检测各个中断标志位,若中断标志位置1,则认为有 中断请求。 3、外中断有2种触发方式:低电平和下降沿,由TCON中的IT0和 IT1决定。
PC
4.2.2 MCS-51中断处理全过程
返回
4.2.2 MCS-51中断处理全过程
1、中断请求
⑴ MCS51单片机内部的中断检测电路随时检测各个中断源,检测到有中断
申请后,将相应的中断标志位置1。
⑵ CPU在每条指令结束时,检测各个中断标志位,若中断标志位置1,则认 为有中断请求。
⑶ CPU读取IE和IP的内容,若中断允许且满足如下条件,则在下一个机器
返回
复位后IP=00H,说明各个中断源都处于低级。 注意: 1、当五个中断源在同一个优先级的情况下INT0优先权最高,串行口优先权最低。 在同一个优先级中,对五个中断源的优先次序安排如下: INT0→T0→INT1→T1→串口 (中断优先级从高到低) 2、对于外中断来说,可以用软件查询法和硬件排队电路法确定优先级。 3、通过对IP寄存器的编程,可以把五个中断源分别定义在两个优先级中,软件 可以随时对IP的各位清0或置1。 例如 某软件中对寄存器IE、IP设置如下:MOV IE,#10001111B MOV IP,#00000110B
第六章 中断技术-2
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
INTA DB INT
从
SP/EN
CAS2 ~CAS0
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
6-6 可编程中断控制器8259A
四、 8259A的工作流程 CPU
④
DB
⑥
8259A
INTA 中断类 IRR
中断被响应,则级别变最低
IR4 IR5 IR6 (级别最高) IR7 IR0 IR1 IR2 IR3 (级别最低)
4)优先级特殊循环方式: 编程指定初始队列最低优先级,其它依次排列
6-6 可编程中断控制器8259A
2、8259A中断结束方式
INTA
INT IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
6-6 可编程中断控制器8259A
一、 功能 1、单片8259A可对8个中断源控制,9片级联可扩展到64级;
2、能向CPU提供中断类型码; 3、可通过编程选择多种工作方式
IR0
8086 CPU
中断 类型码
INTR INTA
8259A
IR1
中断 控制 电路
IR7
6-6 可编程中断控制器8259A
二、内部结构
类型1入口
INT 1
MOV AX,0000H MOV DS,AX MOV BX,OFFSET INTPROC MOV [0120H ] ,BX MOV BX,SEG INTPROC MOV [0122H],BX 或用DOS功能
0000: 0120H 0121H 0122H 0123H
50 20 00 10
2、CAS2~CAS0----级联信号线 用作主片时,为输出线;用作从片时,为输入线;
微机原理第六章 输入输出和中断技术 part 2 (2)
中断处理的一般过程
6.4.3 8088/8086中断系统
8086/8088为每个中断源分配 一个中断类型码(中断向量码),其取值范围为 0~255,实际可处理56种中断。其中包括软件中断,系统占用的中断,已经开放 给用户使用的中断。所有中断又可分为两大类:内部中断和外部中断。
内部中断
6.4.2 中断处理的一般过程
1. 中断请求 2. 中断源识别及中断判优 3. 中断响应 4. 中断处理(服务) 5. 中断返回
1. 中断请求 ➢ INTR中断请求信号应保持到中断被处理为止 ➢ CPU响应中断后,中断请求信号应及时撤销
2. 中断源识别 ➢ 软件判优:由软件来安排中断源的优先级别。顺序查询中断请求,先查询的
➢ (4)能向存储器或外设发出读/写命令。 ➢ (5)能决定传送的字节数,并判断DMA传送是否结束。 ➢ (6)在DMA过程结束后,能向CPU发出DMA结束信号,将总线控制权交
还给CPU。
2. DMA控制器的工作过程 ➢ (1)当外设准备好,可以进行DMA传送时,外设向DMA控制器发出
“DMA传送请求”信号DRQ ➢ (2)DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD ➢ (3)CPU在完成当前总线周期后会立即发出HLDA信号,对HOLD信号进
➢ (2)单步中断——1型中断,标志寄存器中有一位陷阱标志TF。 ➢ (3)断点中断——3型中断,专用于设置断点的指令INT 3,用于程序中设
置断点来调试程序。
➢ (4)溢出中断——4型中断,在算数指令的执行过程发出溢出 ➢ (5)用户自定义的软件中断——n型中断,执行中断指令INT n引起内部中
断。
需要时,CPU回到原来被中断的地方继续执行自己的程序。 优点: ➢ CPU效率高,实时性好 缺点 ➢ 程序编制相对较为复杂
第六章 51系列单片机中断系统
51系列单片机的中断系统
本章主要介绍51系列单片机中断系统问题, 本章将介绍以下具体内容:
中断系统----中断源、中断方式 、中断控制寄 存器、中断响应、中断请求的撤除。
6.1
中断系统的概念
6.1.1 中断系统
中断应用在: 处理实时控制、故障自动诊断、计算机与 外围设备之间进行数据传送、进行人机对话等场合。 中断:是计算机的一种资源共享技术。中断技术就是解决这 种多项任务共享一个CPU资源的最好办法。
一般加装所示电路,并通过响应软件来撤销电平请求信号。
Q输出端
SD为置1端, 高电平有效 D端是逻辑输入端, 固定为低电平 CP为时钟输入端, 接外中断信号
当外中断请求发生时,将D端的低电平送到Q端,形成中断请求信 号。中断响应后,由软件对SD进行操作,将Q端恢复为高电平。 在中断服务程序中增加如下指令: (1) SETB P1.0 ; P1.0输出高电平,始终将Q端置1,永久封锁外中
中断请求标志
触发方 0 低电平 式选择 1 下降沿
定时控制寄存器TCON(字节地址88H)
外中断0 (1)请求标志 当CPU采样到INT0 (1)出现有效中断请求时,该 位由硬件自行设置为1,待中断响应后,该位自动清0。 该位一般为单片机硬件查询用,也可以软件查询。
8FH TF1
8EH TR1
8DH TF0
EA
ES
ET1
EX1
ET0 EX0
EA —— 中断允许总控制 位 (CPU开中断控制位) EA = 0 中断全部关闭 EA = 1 中断开启,各中 断由各自的控制位控制。
ET0(ET1) —— 定时器0(或 定时器1)中断允许控制位 ET0(ET1) = 0 定时器0 (或定时器1)中断禁止 ET0(ET1) = 1 定时器0 (或定时器1)中断允许
计算机组成原理(第六章)
• • • • 中央处理器(CPU)由运算器和控制器组成。 运算器主要用来完成各种算术和逻辑运算功能; 寄存器:用来存放中间结果、缓冲作用 控制器是全机的指挥中心,在在它的控制下,计算机总是遵循“取指令, 执行指令,取下条指令,执行下条指令…”这样周而复始地工作直到停机 为止。 控制器对指令的执行过程的控制有三种方式: – 同步控制方式
• 现代计算机系统广泛采用的方式 • 基本思想:将每个指令周期分成多个机器周期,每个机器周期中再分成 多个节拍,于是各条指令可取不同的机器周期数作为各自的指令周期。 如简单指令包含一个机器周期,复杂指令可包含多个机器周期。 • 这种方式不浪费很多时间,控制上又不十分复杂。
二、控制器的功能与组成 1、控制器的功能
WE M
RD M
RD M
ZF=1?
IR(ADR)→PC
写入操作
读出操作
AC+MDR→AC
读出操作
AC∩MDR→AC
0→启停逻辑
第六章 中央处理器 (10)
四、时序部件
– 指令的执行过程严格按照指令操作流程图所规定的时序定时; – 时序部件用来产生必要的时序信号为机器周期和节拍信号定时; – 根据组成计算机各部件的器件特性,时序信号通常采用“电位-脉 冲”制。 – 时序部件的构成
C0~C31
译码器
Hale Waihona Puke XXXXX 控制字段源部件地址
目标部件地址
地址字段
第六章 中央处理器 (19)
(2)、微指令的地址字段 – 微程序有两种不同的顺序控制方式:断定方式和增量方式。两种方 式下地址字段的设置不同。 – 断定方式
• 微指令在CM可不顺序存放 • 外部测试条件的考虑
单片机原理及应用技术苏家建曹柏荣 汪志锋 课后习题参考答案
单片机原理及应用技术苏家建课后习题参考答案第三章MCS-51指令系统3-1MCS-51指令系统有哪几种寻址方式?按功能分类有哪几种指令?3-2设A=0FH,R0=30H,片内RAM的(30H)=0AH,(31H)=0BH,(32H)=0CH,下列程序段运行后的结果?MOVA,@R0;A=0AHMOV@R0,32H;(30H)=0CHMOV32H,A;(32H)=0AHMOVR0,#31H;R0=31HMOVA,@R0;A=(31H)=0BH3-3(1)R0的内容传送到R1MOVA,R0MOVR1,A(2)内部RAM20H单元的内容传送到AMOVA,20H(3)外部RAM30H单元的内容传送到R0MOVR1,#30HMOVXA,@R1MOVR0,A(4)外部RAM30H单元的内容传送到内部RAM20H单元MOVR1,#30HMOVXA,@R1MOV20H,A(5)外部RAM1000H单元的内容传送到内部RAM20H单元MOVDPTR,#1000HMOVXA,@DPTRMOV20H,A(6)程序存储器ROM2000H单元的内容传送到R1MOVDPTR,#2000HCLRAMOVCA,@A+DPTRMOVR1,A(7)RAM2000H单元的内容传送到内部RAM20H单元MOVDPTR,#2000HMOVXA,@DPTRMOV20H,A(8)RAM2000H单元的内容传送到外部RAM30H单元MOVDPTR,#2000HMOVXA,@DPTRMOVX@R0,A(9)RAM2000H单元的内容传送到外部RAM1000H单元MOVDPTR,#2000HMOVXA,@DPTRMOVDPTR,#1000HMOVX@DPTR,A3-4设内部RAM30H=5AH,5AH=40H,40H=00H,P1=7FH,下面程序执行后的结果如何?MOVR0,#30H;R0=30HMOVA,@R0;A=(30H)=5AHMOVR1,A;R1=5AHMOV@R1,P1;(5AH)=7FHMOVA,P1;A=7FHMOV40H,#20H;(40H)=20HMOV30H,40H;(30H)=00H3-5编程,将内部RAM20H-2FH共16个连续单元清零ORG0100HMOVR0,#20HMOVR2,#16LOOP: MOV@R0,#00HINCR0DJNZR2,LOOPEND3-6编程,求出内部RAM20H单元中的数据含“1”的个数,并将结果存入21H单元中。
第六章 AT89C51中断系统与定时
1 0 1 0
T1 TX RX
PS ES EA
1 0
自 然 优 先 级
中断 矢量地址 硬件查询 源允许
低 级 中 断 请 求
各中断 总允许 源允许
优先级
PC
1.中断源(5个) 向CPU发出中断请求的来源,或引起中断的原因称为中断源。 (1). 外部中断类 外部中断是由外部原因(如打印机、键盘、控制开关、外部故障)引起的, 可以通过两个固定引脚来输入到单片机内的信号,即外部中0(INT0)和外 部中断1(INT1)。 外部中断0(INT0)请求信号输入引脚为P3.2。当CPU检测到P3.2引脚上 出现有效的中断信号时,向CPU申请中断。 外部中断1(INT1)请求信号输入引脚为P3.3 。当CPU 检测到P3.3 引脚上出现有效的中断信号时,向CPU申请中断。 (2). 定时中断类 定时中断是由内部定时(或计数)溢出或外部定时(或计数)溢出引起的, 即定时器0(T0)中断和定时器1(T1)中断。 当定时器对单片机内部定时脉冲进行计数而发生计数溢出时,即表明定 时时间到,申请中断;或者当定时器对单片机外部计数脉冲进行计数而 发生计数溢出时,即表明计数次数到,申请中断。 片内定时/计数器T0溢出中断(TF0):当定时/计数器T0发生溢出时, 置位TF0,并向CPU申请中断。 片内定时/计数器T1溢出中断(TF1):当定时/计数器T1发生溢出时, 置位TF1,并向CPU申请中断。 (3). 串行口中断类 串行口中断是为接收或发送串行数据而设置的。 串行接口中断,包括RI 或TI。当发送或接收完一帧数据时,向CPU 申请中断。
D7 EA
D6 -
D5 -
D4 ES
D3 ET1
D2 EX1
D1 D0 ET0 EX0
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、内部中断
内部中断即软件中断,它不受IF标志的控制,但单步中 断受TF标志的控制。8086/8088的中断如下表6.1所示:
8086/8088中断响应需要两个总线周期 图6.9 8086/8088中断响应总线周期
表6.1 8086/8088的中断优先级
五、中断响应和中断处理过程
2、中断向量表 存放中断向量的存储区称为中断向量表。通
常在存储器的低地址区。 3、8086/8088的中断向量表 8086/8088有256种中断类型,类型号为0-255
(或0-FFH),共有256个中断向量,每个占4个 存储单元,所以需要1024个字节,在存储器的最 低端,地址从00000H-003FFH,这块地址空间就 是中断向量表。
(中断向量指针的低地址) →(IP) (中断向量指针的高地址) →(CS) 例1:中断类型号为27H 则中断向量指针的低地址= 27H ×4= 9CH 中断向量指针的高地址= 27H ×4+2= 9EH 即该中断向量存放在0000H:009CH开始的4个连续单元中。 如果这4个单元中的内容如下:
0000:009C 2AH 0000:009D 43H 0000:009E 65H 0000:009F 87H 则该中断类型号27H的中断向量(中断服务程序 入口地址)的逻辑地址是8765H:432AH,即 (CS)=8765H,(IP)=432AH;物理地址是8B97AH。
硬件中断
软件中断
TF=1 图6.6 8086/8088的中断系统
2、内部中断 内部中断又称软件中断,主要来自CPU内部的软 件中断。 图6.6中,上部是外部的硬件中断;下部是内部 的软件中断。
二、中断向量表
1、中断向量的定义 所谓中断向量实际上就是中断服务程序的入口地 址。每个中断类型号对应一个中断向量。中断向量 占4个字节存储单元,其中前两个字节放中断向量 的偏移地址(IP),且低字节在前,高字节在后;后 两个字节放中断向量的段地址(CS),也是低字节 在前,高字节在后。
⑷ 保护现场:把断点处的有关寄存器内容压入堆栈。 ⑸ 中断服务:执行中断服务程序
图6.4 中断时序流程图
图6.5 中断响应服务 及返回流程图
⑹ 恢复现场:将压入堆栈的有关寄存器的内容弹出。 ⑺ 开中断:在中断服务的最后要开中断,以便CPU能 响应新的中断请求。
如果实现中断嵌套,可以在中断服务程序中,在适当 时候重新开放中断,以便允许响应较高级的中断。 ⑻ 中断返回:将堆栈内的断点值弹出。上述过程如图 6.5所示。
① 取中断类型号72H; ② 计算中断向量地址72H×4=1C8H; 72H×4+2=1CAH; ③ 取中断服务程序入口地址的偏移量送IP,IP=2050H,
段地址送CS,CS=A000H; ④ 转入中断服务程序A000H:2050H; ⑤ 中断返回到INT 72H指令的下一条指令MOV AX , BX。
中断分为两类: ⑴ 可屏蔽中断INTR,由标志寄存器中的 IF位
控制; ⑵ 不可屏蔽中断NMI,不受IF位控制。
5、中断系统功能 ⑴ 中断处理:发现中断请求、响应中断请求、
执行中断服务程序、中断返回。
⑵ 中断控制:中断优先权排队、中断嵌套 当系统中有多个中断时,有可能出现两个或两
个以上的中断源同时提出中断请求,这时要求 CPU根据中断优先权由高到低依次处理。
第六章 中断系统
第一节 基本概念
一、中断
1、中断的定义 当CPU正常运行时,由于随机事件(内部或外部)引
起CPU暂时中止正在运行的程序,转去执行请求中断的外 设(或内部事件)的中断服务程序,中断服务程序结束后 再返回被中止的程序,这一过程称为中断。
2、中断源和中断请求 能够向CPU发出中断请求的中断来源称为中断源。I/O设
三、中断优先级和中断嵌套
1、中断优先级:中断优先级一般采用软件查询或硬件 中断优先级编码电路。 2、中断嵌套:当CPU执行优先级较低的中断服务时, 而允许响应比它优先级高的中断请求,而将正在处理的 中断暂时挂起,这就是中断嵌套。
第二节 8086/8088的中断系统
一、中断分类
8086/8088的中断系统如图6.6所示。 1、外部中断 8086/8088CPU有两条引脚提供外部中断源请求中断:一 条是高电平有效的可屏蔽中断INTR;另一条是正跳变有效 的非屏蔽中断NMI。外部中断又称硬件中断。 ⑴可屏蔽中断:可屏蔽中断是由用户定义的外部硬件中断 ,受中断标志位IF的控制。 ⑵非屏蔽中断:不受中断标志位IF的控制。
若允许中断嵌套,则一般在中断服务程序中保存寄存器 后,就安排一条STI指令,以便响应优先权较高的中断。 在中断服务程序末尾安排一条IRET返回指令。
至于不可屏蔽NMI中断,与上述操作基本类似,只是不需 要读取中断类型码,因为它的中断类型码由CPU内部自动产 生。
⑹ 图中在得到中断服务程序入口地址后,查看NMI是否有,接 着查看TEMP,若TEMP=1,则在中断前CPU已处于单步方式, 就和NMI一样重新保护现场和断点,转入单步中断服务程序。 若TEMP=0,即中断前CPU处于非单步方式,则CPU转去执行最 先引起中断的中断服务程序。
最后举一个例说明中断操作过程。 例4:某中断类型号为72H,图6.10示出了中断操作过程。
中断嵌套如图6.1所示。假定有两个中断源A和 B,A的级别高于B,当CPU正在处理B中断时, 允许A能中断B的中断处理,转去执行A的中断服 务程序,在高级中断A处理完后,返回到原来打 断处,继续处理B的中断服务程序。图中为两级 中断,还可以进行多级中断。
图6.1中断嵌套示意图
二、中断处理过程
1、中断检测 中断源向CPU发中断请求是随机的,大多数CPU在现
例2:为中断类型N设置中断向量,该中断的中断服务程
序的符号地址是INTHAND。
mov ax, 0
mov es, ax
;中断向量表的段地址
mov bx, N*4
;中断向量表的偏移地址
mov ax, offset INTHAND ;得到INTHAND的偏
移地址
mov ES:word PTR[bx], ax ;放到中断向量表中
mov ax, seg INTHAND ;得到INTHAND的段
地址
mov ES:word PTR[bx+2], ax;放到中断向量表中
…
INTHAND:
;中断服务处理程序
…
IRET
② 用DOS功能调用来设置中断向量
Ⅰ、设置中断向量 入口参数: AH=25H AL=类型号 DS:DX=中断向量 执行 INT 21H
图6.2 CPU内设置中断允许触发器IFF
3、中断请求与中断屏蔽触发器 图6.3是具有中断请求与中断屏蔽的接口电路。每一个中
断源都有一个中断请求触发器和一个中断屏蔽触发器。只 有当该中断源不屏蔽时,它的中断请求信号才能发给CPU。
图6.3 具有中断请求与中断屏蔽的接口电路
3、CPU响应中断及处理过程 满足上述条件后,CPU响应中断,转入中断周期,完
参见图6.8所示。从图中可知,可屏蔽中断要多两个步骤,即 要先判断IF是否为1,若IF=1则进入中断响应,此时CPU要读 取中断类型码,然后进入所有中断都要做的事。 ⑴ 将标志寄存器FR的内容压入堆栈 ⑵ 将中断允许标志IF和单步标志TF清零 ⑶ 将断点保护到堆栈中。所谓断点就是指响应中断时,主程 序中当前指令下面的一条指令的段寄存器CS的值和指令指针寄 存器IP的值压入堆栈,先压CS,再压IP的值。 ⑷ 根据当前中断的中断类型码查中断向量表,得到中断向量 (中断服务程序入口地址)分别装入CS和IP,从而转到相应的 中断服务程序。 ⑸ 执行中断服务程序,结束后恢复断点,从而继续执行原来 的程序。
Ⅱ、取中断向量 入口参数: AH=35H AL=类型号 执行 INT 21H 返回时ES:BX=中断向量
例3:使用DOS功能调用存取中断向量
…
mov
al, N
mov
ah, 35H
;取原中断向量
int
21H
push
es
;保存原中断向量的段地址
push
bx
;保存原中断向量的偏移地址
push
ds
mov
ax, seg INTHAND ;得到INTHAND的段地址
4、8086/8088中断的分类
⑴ 前5个是专用中断(类型0-4) 类型0:除数为0中断 类型1:单步中断 类型2:NMI中断
类型3:断点中断
类型4:溢出中断 ⑵ 保留的中断(类型号05-3FH):这是Intel公司 为软件、硬件开发保留的中断类型,大部分用于 系统中断,如20H-3FH为DOS中断调用。 ⑶ 供用户定义的中断(类型号40H-FFH):使用 用户自己定义的中断,用户必须把该中断的中断 向量填写到中断向量表中。 填写方法有两种: ① 用指令填写
mov
ds, ax…
mov dx, offset INTHAND;得到INTHAND的偏移地址
mov
al, N
;类型号
mov int pop
… pop pop mov mov int ret
… INTHAND:
… iret
ah, 25H 21H ds
dx ds al, N ah, 25H 21H
;设置中断向量
如图6.7所示。
图6. 7 8086/8088中断向量表
从表中,知道了中断类型号,便可计算出相应的中断向量
在表中存放的位置,称为中断向量表地址,或称为中断向量 指针。从中断向量表地址中取出中断向量,便得到了该中断 类型号的中断服务程序入口地址。即
中断类型号×4 = 中断向量指针的低地址 中断类型号×4+2 = 中断向量指针的高地址
成以下操作,其时序如图6.4所示。 ⑴ 关中断:CPU响应中断时,发出中断响应信号INTA