微机原理与接口技术 第七章

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

IP内容 CS内容
0007FH 类型31中断入口地址 00080H 类型32中断入口地址 用户自定义中断(224个)
类型255中断入口地址 003FCH
8086/8088的中断向量表
… …
中断服务程序入口地址表
000H 004H CPU 使用 (5) 008H 00CH 010H 014H 类型 0 类型 1 类型2 类型 3 类型 4 类型 5 IP 除数为零 CS 单步(TF =1) 非屏蔽中断 断点中断 溢出(OF=1) 100H 104H
7-2 中断处理过程
一、CPU响应中断的条件及过程
执行指令 取下一条指令

保护现场
指令结束
是 否
有中断请求

(1) 从数据总线 部 上取中断类型号

开中断
响应中断 关中断 保护断点 寻找中断源
中 (2) 将标志寄存器PSW的值入栈, 断 中断服务 (3) 置IF=0 TF=0 处 理 (4) 保护断点。将当前指令下面一条 恢复现场 流 指令的段地址CS和偏移地址IP的值 程 入栈。为中断返回作准备。 图 (5) 根据中断类型号,找到中断向量。
非屏蔽中断请求 NMI INTR
中断逻辑
INT n INTO 指令 指令 除法 出错 单步 (TF=1) 断点 中断
8 2 5 9 A
IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7
CPU 内部中断的特点: 1. 中断类型码包含在指令中,或者是预先规定的; 8086/8088中断源 2. 不执行INTA总线周期;3. 除单步中断外,任何内部中断都无法禁止; 除单步中断外,任何内部中断的优先级都比任何外部中断的高。
2、中断响应和返回 中断响应:中断屏蔽、断点和标志保护(CS、IP、PSW)、 转向中断服务程序。 中断返回:断点和标志恢复(PSW、IP、CS)、转向主程序。 3、中断向量表
保存中断中断服务程序的入口地址,在内存中专门开辟
了一个区域,用来保存中断向量,称为中断向量表(也称中断 矢量表)。
4、中断优先级
和非屏蔽中断申请 ①. 可屏蔽中断申请INTR 用户可以使用编程手段(STI、CLI指令),使CPU处于 “开中断”或“关中断”状态。CPU只有在”开中断” 状态 下才能响应外设通过INTR可屏蔽中断线提出的中断申请。 ②. 非屏蔽中断申请NMI 用户无法使用编程手段控制。只要NMI=1,CPU在当前指 令运行结束后,马上响应NMI非屏蔽中断申请。

(1) 计算存放中断服 务程序入口地址的地址 =68H*4=1A0H;

001A0H
001A2H 001A4H
存放地址 =68H*4 =1A0H

50 20 00 A0
2050 A000
(2) 取中断入口地址的段 内偏移量装入IP,IP=2050H , 段码装入CS,CS=A000H;
(3)转向中断服务程序; (4)中断返回
优先权排队:多个中断源同时申请中断时,根据预先安排 的各中断源预先级别,首先响应级别高的中断源;待中断服务 结束后,再响应级别稍低的中断源。 中断服务嵌套:在低级中断源服务过程中,若有高级中断
源申请,CPU中断低级别中断服务程序;响应高级别中断申请,
并服务;待高级别中断服务结束后,再继续执行低级别中断服 务。 5、中断屏蔽 当中断源申请中断时,CPU可以由软件设置,使之不能响
MOV AX,0 ;中断入口表 MOV ES,AX ;段地址送ES MOV DI,n*4 ;偏移量送DI MOV AX,OFFSET INTRAD CLD STOSW ;传送子程序偏移地址 MOV AX,CS STOSW ;传送子程序段地址 STI
MOV MOV MOV MOV MOV MOV MOV STI
方法2:通过调用DOS功能来设置
AL,n ;取中断入口 AH,35H 21H ES ;存原中断入口 BX DS AX,SEG INTRAD DS,AX DX,OFFSET INTRAD AL,n ;中断类型号 AH,25H ;设置中断入口 21H DS
DX ;恢复原中断入口 DS AL,n AL,25 21H
CPU
执 行 主 程 序
指令结束
N
CPU自动 执行中断 响应
关中断 断点保护 转中断服务
CPU 执行 中断 服务 程序
开中断
中断服务
恢复现场
返回主程序
原PSW,IP,CS 出栈,返回主程序
CPU响应中断的条件 CPU的中断是开放的 CPU内部设置(可屏蔽)中断允许触发器,它的状态由PSW 的IF标志指示。 IF=1,CPU允许中断, 即中断开放
①CPU与外设并行工作。解决CPU速度快、外设速度慢的 矛盾。在外设需要时发出中断申请,CPU才中断原有工作执行 中断服务程序,与外设交换数据;中断服务结束,CPU返回原 程序继续执行。
②实时处理。控制系统往往有许多数据需要采集或输出。 实时控制中有的数据难以估计何时需要交换。中断可为实时控 制提供支持。
AX,0 ;中断入口表 ES,AX ;段地址送ES BX,n*4 ;偏移量送DI AX,OFFSET INTRAD ES: [BX],AX AX,SEG INTRAD ES: [BX+2],AX
MOV MOV 设置中断入口:把由AL指定中断类型号 INT 的中断入口DS:DX中放置在中断入口表中。 PUSH 预置:AL=中断类型号 PUSH DS:DX=中断服务程序入口地址 PUSH MOV AH=25H MOV MOV 执行:INT 21H MOV MOV 取中断入口:把由AL指定中断类 INT 型号的中断入口,从中断入口表中 POP 取到ES:BX中。 预置:AL=中断类型号 POP POP AH=35H MOV 执行:INT 21H MOV 返回: ES:BX=中断服务程序入口地址 INT RET
中断返回
中 断 服 务 程 序 的 一 般 结 构
转中断 服务程序
(6) 中断处理程序结束后,从堆栈中 依次弹出IP,CS和PSW,然后返回 主程序断点处。继续执行下一条指令。
8086/8088的中断响应过程
完成当前指令 有内部 中断吗? N 有NMI 中断吗? N 有INTR 中断吗? N TF=1? N 执行下一条指令 Y Y IF=1? N 中断类型号1 (1) Y Y 中断类型号2 (1) Y 从指令中或内部 获得中断类型号 (1) (2) (3) (4) (5) (1) Y 从外部得到 中断类型号 Y FLAGS 入栈 令TEMP=TF 清IF、TF CS、IP入栈 调中断处理程序 有NMI? N TEMP=1? N 中断服务 IP、CS出栈 FLAGS出栈 返回断点
微型计算机中断系统
• 7-1 概 述 • 一. 中断的概念 • 二. 中断的分类 • 7-2 中断的处理过程 • 一、CPU响应中断的过程 • 三、中断服务子程序 • 7-3 中断优先级和中断嵌套 • 一、中断优先级 二、中断嵌套 二、内部结构 四、8259A的编程方法 二、中断向量表 四、中断响应时序
IF=0,CPU不允许中断,即中断关闭 使IF=1的条件:执行STI 指令 使IF=0的条件:① 执行CLI指令;② CPU RESET;

• 7-4 可编程中断控制器8259A
• 一、功能和引脚 • 三、8259A的中断管理方式
• 五、8259A的中断级连
7-1 概
一、中断概念

中断技术是微机中一项重要技术。它不仅在数据输入、 输出中提高了CPU的效率,而且在多外设、实时控制、故障 处理中也是一项必不可少的技术。 1、中断的应用特点
③故障处理。计算机系统的故障往往随机发生,如电 源断电、运算溢出、存储器出错等。采用中断技术,系统 故障一旦出现,就能及时处理。 中断处理的过程:
外设中断源 申请中断
INTA=0
INTR=1
CPU 响应中断
i条指令 i+1条指令
中断服务程序
中断的基本术语 1、中断源 引起程序中断的时间称为中断源。
放一组中断向量的区域被称为中断向量表。当中断被响应后,
CPU根据中断的类型号,计算出中断向量在中断向量表中的位 置,然后从表中取出中断向量(中断服务程序的入口地址),
并进入中断服务程序。
1. 中断向量表
8086/8088在内存区的00000H~003FFH(1KB)建立一个中 断向量表。用于存放与256个中断类型码(00H~0FFH)相应的中 断服务程序入口地址。每个中断服务程序入口地址使用4个字 节,低16bit为段内偏移量送IP,高16bit为段码送CS。 各中断服务程序入口地址的段地址和段内偏移量按中 断类型号顺序存放在表中。因此由中断类型号n*4可得到相 应中断服务程序入口地址的地址,取4n和4n+1单元中的内 容(中断入口段内偏移量)装入指令指针IP,取4n+2和 4n+3单元中的内容(中断入口段地址)装入代码段寄存器 CS,即可转入中断服务程序。
二、中断向量
寻找中断源可用查询中断和矢量中断两种方法。 8086系统中采用矢量中断方法。 矢量中断的工作过程 当中断请求被响应时,CPU将停止当前运行的程序,转入 中断服务程序,而每个中断服务程序都有一个程序的入口地址, 这个入口地址就是中断向量。将每个中断源的中断服务程序的 入口地址(矢量地址)按顺序存放在中断向量表中。内存中存
IF=1
INTR=1
CPU对中断的响应
执行一条指令 取下一条指令 N INTR=1 1、CPU发INTA同 时,自动关中断 2、CPU自动将 断点CS,IP,PSW 入栈 3、CPU将中断 源提供的中断类型 码形成中断服务入 口地址,送CS,IP 执行PUSH指令 保护现场 用于中断嵌套。 若无中断嵌套,可 放在恢复现场前 执行POP指令
类型 64 类型 65 类型66 类型 67 用户 使用 (192)
108H
10CH
DOS 使用 (59)
070H

类型 28
1/18.2S定时
3FCH
类型255
中断服务程序入口地址表地址
0FCH 类型63
=4×中断类型码
例:某中断的中断类型号为68H,其中断过程为:
INT 68H MOV AX,0
①内部中断:执行INT
n
指令时产生中断
②外部中断:外部设备或协处理器向CPU发出中断申请引起的。 例如:外设(I/O)设备向CPU提出中断申请,使INTR=1。 中断源的功能:在需要时,向CPU发出中断申请INTR=1, 直至CPU响应中断INTA=0 后撤销中断申请。
Intel 8088/8086的外部中断申请 Intel 8088/8086的二种中断申请:可屏蔽中断申请
3. 中断类型号的获取 (1) 对于除法中断、单步中断、不可屏蔽中断NMI,断点中 断和溢出中断,CPU分别自动提供中断类型号0~4。 (2) 对于用户自己确定的软件中断INT n,类型号由n决定。 (3) 对外部可屏蔽中断INTR,可用硬件电路设计产生。也可 用可编程中断控制器8259A获得中断类型号。
00000H 类型0中断入口地址 (除法出错) 00003H 00004H 类型1中断入口地址 (单步中断) 00007H 专用中断 (5个) 00008H 类型2中断入口地址 (NMI) 0000BH 0000CH 类型3中断入口地址 (断点中断) 0000FH 00010H 类型4中断入口地址 (溢出中断) 00013H 00014H 类型5中断入口地址 系统保留中断(27个)
应,称为中断屏蔽。
中断系统的功能
(1) 能实现中断响应、中断服务、中断返回、中断屏蔽。
(2) 能实现中断优先级排队。
(3) 能实现中断嵌套。
二、中断分类 8088/8086有一个简单而灵活的中断系统,每个中断都有 一个中断类型码以供CPU进行识别,8086/8088可以处理256种
不同的中断。这些中断又可分为外部中断和内部中断两大类。

④ 中断服务程序
A000:2050 STI PUSH DS
IRET
2. 中断入口地址的设置
IBM PC对256个中断类型已进行了地址分配,其中40H以后的中断类型 号可供用户使用。供用户使用的中断类型号,可由用户定义为软中断,由 INT n指令引用;可通过INTR端或通过中断控制器8259A引入可屏蔽的硬件 中断。使用时用户要自己将中断服务程序入口地址置入相应的中断向量表 内。 方法1:通过指令来设置
相关文档
最新文档