50
计计计计计计计 计计计计计计 计计计

中断系统

  • Upload
    nassor

  • View
    45

  • Download
    8

Embed Size (px)

DESCRIPTION

中断系统. 第六章 中断系统. 中断的作用. 第 6.1 节 计算机中断系统 中断的作用 并行操作,提高工作效率 CPU 与外设同时工作,多个外设同时工作。 实现实时处理 在控制系统中,有些参量要求计算机能快速处理,用中断方式容易实现。 故障处理 出现故障,提出中断申请,要求计算机及时响应。. 中断源. 中断源 任何能引发中断的事件都称为 中断源 ,可分为: 硬件中断源: I/O 设备,系统时钟,故障源等 软件中断源: 程序中断指令 (INT 3) ,指令运行出错 (INTO) 等 中断系统的功能 (一)实现中断及返回 检测中断 - PowerPoint PPT Presentation

Citation preview

Page 1: 中断系统

计算机原理讲义

中断系统

第六章 中断系统

Page 2: 中断系统

计算机原理讲义

中断的作用

第 6.1 节 计算机中断系统一.中断的作用

并行操作,提高工作效率 CPU与外设同时工作,多个外设同时工作。

实现实时处理 在控制系统中,有些参量要求计算机能快速处理,

用中断方式容易实现。 故障处理

出现故障,提出中断申请,要求计算机及时响应。

Page 3: 中断系统

计算机原理讲义

中断源二.中断源

任何能引发中断的事件都称为中断源,可分为: 硬件中断源: I/O 设备,系统时钟,故障源等 软件中断源:程序中断指令 (INT 3) ,指令运行出错

(INTO) 等三.中断系统的功能(一)实现中断及返回

1. 检测中断 当中断允许时, CPU 在每条指令的最后一个时钟周

期检测中断请求。2. 响应中断时保护断点和现场

断点自动保护,现场要在中断服务程序中保护

Page 4: 中断系统

计算机原理讲义

中断系统的功能 CPU 响应中断时,会停止当前执行程序,转去执行中断处

理程序,原程序被打断的地方称为“断点”。 断点地址是指中断处理程序结束后,返回原程序恢复执

行的第一条指令的地址,又称“返回地址”。现场是指进入中断服务程序之前 CPU 各个寄存器的状态。

3. 中断服务完成时将中断申请信号撤销4. 中断服务完成后恢复现场和断点,返回原程序

中断服务程序

返回断点

中断处理

断点 CS : IP+1

正常程序

CS : IP

继续执行

Page 5: 中断系统

计算机原理讲义

中断系统的功能(二)对中断进行控制

1. 对中断申请进行控制例 1 一个输入设备的中断接口电路

CQ

D +5V

160H

D0A

A 中断允许触发器B 中断申请触发器

D

CQ RB

地址 译码 器

INTR

162H

IOWA15~A0

IORINTA

缓冲器

缓冲器中断类型码 (0FH)

三 态

三 态D7 ~ D0 D7 ~ D0

EOC

外 设

Page 6: 中断系统

计算机原理讲义

中断系统的功能※ 电路说明① 外设准备好数据后,发 EOC信号(负脉冲),把数据放到

接口线上,同时置“ 1”中断申请触发器。② 执行如下指令,置中断允许触发器为“ 1”,开放中断

MOV AL, 01H

MOV DX, 160H OUT DX, AL

③ 若禁止中断,则执行如下指令 MOV AL, 00H MOV DX, 160H OUT DX, AL

Page 7: 中断系统

计算机原理讲义

中断系统的功能④ 当 INTR 为高电平,且 CPU 中断开放( IF= 1),则 C

PU 响应中断。在中断响应周期, INTA 有效,读取中断类型码,清除中断申请触发器。

⑤ 在中断服务程序中读取外设数据 MOV DX, 162H IN AL, DX

2. 对中断响应进行控制标志寄存器 Flag中 IF标志可控制 CPU是否查询 INTR引

脚 STI IF=1 允许中断 CLI IF=0 禁止中断

Page 8: 中断系统

计算机原理讲义

中断系统的功能(三)实现优先权排队 当系统中多个中断源同时发出中断请求时, CPU 按照

重要性和急迫性 (中断优先级 )择优响应:① 不同优先级同时请求时, CPU 先响应高优先级中断;② CPU 在处理低优先级中断时,若出现高优先级中断请求,

则转去处理高优先级中断 (中断嵌套 );③ CPU 在处理高优先级中断时,若出现低优先级中断请求,

暂不响应;④ CPU 在处理中断时,若出现同级别中断请求,则等当前

中断处理完后,才处理新的请求。

Page 9: 中断系统

计算机原理讲义

中断系统的功能(四)寻找中断源

有中断申请时需要查找中断源,以决定中断服务程序入口地址。

1. 预先约定 当有中断申请时,则转到固定地址执行中断服务程

序。电路简单,但一般只能为几个中断源服务。2. 查询

在中断服务程序中查询中断源。3. 应答方式(矢量中断) 响应中断时 CPU发中断响应信号,中断源收到此

信号发出中断类型码, CPU根据中断类型码决定中断服务程序入口地址。

Page 10: 中断系统

计算机原理讲义

中断系统的功能※ 中断源查找和中断优先级排队的实现

1. 软件查询中断源CPU 响应中断后用软件查询申请中断的外设

查询方法优点 查询次序即是优先权次序; 省硬件,不需要硬件排队电路。

缺点:转至服务程序入口时间长

A15A0~ 译码

地址

IORINTR

D7~D0

源 A B C D E F G H

20H

三态缓冲器

中断申请触发器

Page 11: 中断系统

计算机原理讲义

中断系统的功能 查询程序

IN AL, 20H

LEA BX, BRNTAB

CIRCLE: SHR AL, 1

JC GETAB

ADD BX, 2

OR AL, AL

JNZ CIRCLE

JMP ERROR

GETAB: JMP CS : [BX]

BRNTAB DW SUB1, SUB2, SUB3, SUB4

DW SUB5, SUB6, SUB7, SUB8

CF0DST

MSB LSB

Page 12: 中断系统

计算机原理讲义

中断系统的功能2. 链式优先权排队电路(应答方式)

※ 电路说明① 每个接口有一个中断允许输入 IEI 和中断允许输出 IEO,只有 IEI 为高电平时才允许该接口芯片发中断请求;

② IEO=IEI•INT INT表示该设备有中断请求;③ 每个接口芯片的中断请求输出为 OC门,具有负逻辑的

“线或”关系;④ 响应中断时由 INTA从接口读取中断矢量。

外设 2

IEI IEO接口 2

外设 1

IEI IEO接口 1SEL1

外设 3

IEI IEO接口 3SEL2 SEL3

+5V

D7~D0

INTAINTR

IORIOW

Page 13: 中断系统

计算机原理讲义

中断系统的功能3. 中断优先权编码电路

中断请求寄存 器

中断服务寄存 器

优先权编码器

优先权编码器

B2B1B0

A2A1A0

A>B

比较器

INTRIR0IR1IR2IR3IR4IR5IR6IR7

※ 电路说明①中断请求寄存器由 IR0

~IR7 可分别引入 8 个外设的中断请求。

②优先权编码器把当前最高优先级的中断输入进行编码后输出。

③中断服务寄存器记录正在服务的中断申请。

④中断申请的最高级与正在服务的最高级比较,只有申请级高于服务级才能提出中断申请( INT )。

Page 14: 中断系统

计算机原理讲义

8086 中断结构

第 6.2 节 8086/8088 的中断结构一.8086 中断

8086 CPU 中断分为两类 硬件中断:由外部请求引起的中断 软件中断:由指令执行引起的中断

INT 3

指令INTO指令INT 4

断点 单步中断INT 1

除数为 0

INT 0

INT n 指令

中 断 逻 辑NMI

INTR

非屏蔽中断

可屏蔽中断

INT 2

Page 15: 中断系统

计算机原理讲义

8086 中断结构(一)硬件中断

1. 可屏蔽中断 可屏蔽中断申请输入为 INTR引脚,高电平有效,该中断受 IF控制, CPU在每条指令的最后一个 T 状态检测该引脚。 CPU响应中断后,使 INTA有效,从外设读取中断类型码。

8086/8088有 256 个中断类型,用 1个字节进行编码称为中断类型码,每个中断类型码对应 4个字节的中断服务程序入口地址。

Page 16: 中断系统

计算机原理讲义

8086 中断结构2. 非屏蔽中断 非屏蔽中断申请输入为 NMI 引脚,上升沿

有效,该中断不受 CPU 控制,中断类型码为 2 ( INT

2) 。 非屏蔽中断一般用于非常事件。 PC/XT 机

中用于系统板上 RAM奇偶错, I/O通道奇偶错和 808

7异常中断。

Page 17: 中断系统

计算机原理讲义

8086 中断结构(二)软件中断

1. DIV 和 IDIV 指令( INT 0 ) 若除数为 0或商超过寄存器所能表达的范围,则产

生类型为 0 的软件中断。2. INT 指令 ( INT n )

执行 INT n 指令引起的中断。

3. INTO 指令( INT 4 )若 OF=1 ,则指令 INTO 引起类型码为 4 的软件中断。

4. 单步中断 ( INT 1 ) 若 TF=1 ,则 CPU 每执行完一条指令后便产生类型码为 1 的软件中断。

Page 18: 中断系统

计算机原理讲义

中断优先级顺序二.PC 机的中断优先顺序

1. 软件中断(单步中断除外)2. 不可屏蔽中断 NMI

3. 可屏蔽中断 INTR

4. 单步中断

Page 19: 中断系统

计算机原理讲义

中断向量表

三.PC 机的中断向量 8086 CPU 在内存 00000H ~ 003FFH 的 1KB 地址

空间内建立一个中断向量表,存放 256 个中断服务程序的入口地址,每个地址占 4 个字节。前两个字节为中断服务程序偏移地址 IP ,后两个字节为服务程序段地址CS 。

类型 255 指针

除数为 0

单步非屏蔽断点溢出

003FCH

00000H

00004H

00008H

0000CH

00010H

CSIP

段地址偏移量

一个中断服务程序的入口地址称为中断向量,中断向量表就是中断服务程序入口地址表。

Page 20: 中断系统

计算机原理讲义

中断向量表 由于每个中断类型码对应 4个字节的程序入口地址,因此中断类型码乘以 4便可得到中断向量表中存放中断服务程序入口地址的存储单元的偏移量。

256 个中断向量中 0 ~ 4 : 专用中断类型 5 ~ 1FH : 保留中断类型 (可修改中断服务程序)

20H ~ 0FFH :用户可用中断类型其中 8 ~ 0FH 是 8 个硬件中断

例: INT 21H 指令调用第 21 号中断服务程序,其入口地址存放在中断向量表中84H ~ 87H 的连续 4 个字节。( 21H×4 = 84H )

偏移量低 8位

偏移量高 8位

段地址低 8位

段地址高 8位87H

86H

85H

84HIP

CS

Page 21: 中断系统

计算机原理讲义

INTR 引脚信号说明※ INTR 引脚信号说明 计算机中,多个外设中断源通过 8259A 中断优先级管理器连接到 INTR 引脚,外设中断源的优先级由 8259A 进行管理

IR0 ~ IR7 优先级由高到低,通常对应的中断类型码为 8~

0FH 。( IR0 ~ IR7 的编号恰好对应中断类型码的低 3位) 例: IR0 对应中断类型码 08H

IR0IR1IR2IR3IR4IR5IR6IR7

8259A

INTINTR

8086

外设中断源 1

外设中断源 8

Page 22: 中断系统

计算机原理讲义

INTR 引脚信号说明 IBM PC/XT 机中一般使用两片 8259A 级连

8259级联后可管理 15个外设,只能两级级联优先级: 0 1(8……15)3…7 高 低

IR0IR1IR2IR3IR4IR5IR6IR7

主片8259A

INTRINTR

CPU

IR8IR9

IR10IR11IR12IR13IR14IR15

从片8259A

INTR

Page 23: 中断系统

计算机原理讲义

中断响应过程四.中断响应过程

1. 中断检测 CPU 在每条指令执行的最后一个时钟周期检测中断请

求,如果出现以下之一,则进入中断响应周期。 有软件中断 有 NMI 中断信号 有 INTR 中断信号,而且 CPU 允许中断响应,即 IF=

12. 获取中断类型码

进入中断响应周期以后, 若是 INTR ,则产生 INTA 信号,中断源通过数据总

线的低 8位将中断类型码传送给 CPU ; 若是 NMI ,则类型码是 2 ; 若程序出错产生中断,则使用默认的类型码; 若是中断指令,则指令中有类型码。

Page 24: 中断系统

计算机原理讲义

中断响应过程3. 保护断点 系统自动将标志寄存器压入堆栈,清除 TF 和 IF ,并

将断点处的 CS 和 IP压入堆栈,先压 CS 后压 IP 。4. 得到中断向量 系统根据中断类型码形成中断服务程序的入口地址,

转入中断服务程序执行,每个中断都有自己的处理程序。5. 中断服务处理

进入中断服务程序后,通常由以下步骤组成 保护现场,开中断 中断处理 关中断,恢复现场,又开中断 用中断返回指令 (IRET) 返回

6. 中断返回:从堆栈中恢复断点处 CS:IP 和 FLAG

Page 25: 中断系统

计算机原理讲义

8259 功能简介

第 6.3 节 中断控制器 INTEL8259A

一. INTEL8259A 结构与功能(一)功能简介

8259A 是与 8086 系列 CPU兼容的可编程中断控制器。 具有 8 级优先权控制,通过级联可扩展至 64 级 每一级中断都可以屏蔽和允许。 中断响应时提供中断类型码。 中断申请可以有电平触发,也可有边沿触发。 有多种工作方式。

Page 26: 中断系统

计算机原理讲义

8259 内部结构(二) 8259 内部结构

INTA INT

数据总线 缓冲器

读 /写控 制逻 辑

级 连缓 冲比 较

SP/EN

控制电路控制逻辑

初始化命令 寄存器组

操作命令寄存器组

中断 请求 寄存 器( IRR )

IR0IR1IR2IR3IR4IR5IR6IR7

中断服务寄存器

( ISR )

中断优先级分析器

中断屏蔽寄存器 ( IMR )

D7~D0

RDWR

CSA0

CAS1CAS2

CAS0

Page 27: 中断系统

计算机原理讲义

8259 内部结构说明

※ 内部结构说明① 8259A 有 8 个外部请求输入端 IR0~IR7 ,由中断请求

寄存器 IRR 保存申请状态;② 中断服务寄存器 ISR 保存 CPU 正在处理的中断请求;③ 中断屏蔽寄存器 IMR 对中断申请进行控制;④ 中断优先级分析器决定中断申请的优先级;⑤ 控制逻辑中包含两个寄存器组

初始化命令寄存器组: ICW1~ICW4 操作命令寄存器组: OCW1~OCW3

⑥ 级联逻辑控制 8259A 的主从工作方式。

Page 28: 中断系统

计算机原理讲义

8259 引脚图

※ 引脚说明① D7~D0 双向,三态数据线,

可直接与系统总线相连。② IR7~IR0 8 个外部中断请求

输入引脚,可为高电平有效或上升沿有效。

③ RD 读信号,输入,低电平有效,若有效则把 8259A内部寄存器数据读入到 CPU 。

④ WR 写信号,输入,低电平有效,若有效则把数据写入到8259A 的内部寄存器。

1234567891011121314

CS WR RD D7 D6 D5 D4 D3 D2 D1 D0

CAS0CAS1GND

Intel8259A

2827262524232221201918171615

VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2

(三) 8259A 引脚图

Page 29: 中断系统

计算机原理讲义

8259 引脚图说明⑤ CS 片选信号,低电平有效,给 8259A 分配地址。⑥ A0 用于选择 8259A内部不同寄存器。⑦ INT 中断申请线,输出,高电平有效, 8259A 的中断

申请输出引脚(可连接 8086 的 INTR )。⑧ INTA 输入,低电平有效,有效时 8259A 输出中断类型

码⑨ CAS2~CAS0 级联信号线,当 8259A 为主片时为输出

引脚,从片时为输入引脚。收到第一个 INTA 时,主片通过这三根线通知有中断申请的从片在第二个 INTA 时送出中断类型码。

⑩ SP/EN 在非缓冲工作方式时,输入,决定 8259A 为主片还是从片;在缓冲工作方式时,输出,由它打开总线缓冲器。

Page 30: 中断系统

计算机原理讲义

8259 与计算机的连接二.8259A 与计算机的连接(一) 8259A单片工作方式的接口电路

D7~D0

D7~D0

RDWRINTINTAA0CS

8259A

SP/EN IR0IR1IR2IR3IR4IR5IR6IR7

CAS2CAS1CAS0

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

日时钟键盘保留COM2COM1硬盘软盘打印机

+5V

IORIOW

INTRINTA

A1

A13

A15A14

A10

A12A11

74LS30

74LS04A9

+5V

A8A7A6A5

+5V

CBA

74LS138

Y1Y0

G2AG2B

G1

Page 31: 中断系统

计算机原理讲义

8259 与计算机的连接※ 电路说明

① 8259A 的数据线与控制线对应连接到系统总线;② 由 74LS30 ( 8 输入与非门)和 74LS138 (三-八译

码器)对地址线进行译码决定端口地址,地址为020H~03FH ;

③ 8086使用低 8位数据线与 8259A传递信息。 8086 的A1 接到 8259 的 A0 线上,使用偶地址;

④ CAS2 CAS1 CAS0未接, SP/EN 接正电源;⑤ 地址范围

范 围A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

0 0 0 0 0 0 0 0 0 0 1 X X X X X0020H~ 003FH

Page 32: 中断系统

计算机原理讲义

(二)两片 8259A 级联工作管理 15 级中断+5V

D7~D0INT

8259A

SP/EN IR0IR1IR2IR3IR4IR5IR6IR7

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

CAS2 CAS1 CAS0

D7~D0

CS

8259A

SP/EN

IR0IR1IR2IR3IR4IR5IR6IR7

IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15

CAS2 CAS1 CAS0INT

INTA2CS

(020H ~

03FH )

(0A0H ~ 0BFH )

INTA1CS

INTARDWRA0

INTARDWRA0

D7~D0

实时钟改向 INT0A

协处理器

CS

INTRINTAIORIOWA1

Page 33: 中断系统

计算机原理讲义

8259 与计算机的连接※ 说明① 从片 8259A 的中断申请端 INT 接主片的 IR2

② 主片的 SP/EN 接 +5V,从片的 SP/EN 接地,主从片的CAS2、 CAS1、 CAS0 对应连接。

③ 主片的端口地址 INTA1CS 为 020H~03FH, 从片的端口地址 INTA2CS 为 0A0~ 0BFH.

④ 8086 系统主从芯片都用偶地址传递信息。

Page 34: 中断系统

计算机原理讲义

8259 初始化命令字三.8259A 编程字(一)初始化命令字

1. ICW1 ( Initial Command Word )

※ A0=0 , D4=1 表示对 ICW1编程① D0 ( IC4 )

D0=1 需要 ICW4 ; D0=0 不需要 ICW4② D1 ( SNGL )

D1=1 为单片 8259 工作方式; D1=0 为级联工作方式,此时要用 ICW3 指明级联端

A0

0 IC4SNGLADILTIM1A7 A6 A5

D7 D6 D5 D4 D3 D2 D1 D0

Page 35: 中断系统

计算机原理讲义

8259 初始化命令字③ D2 ( ADI )

指明 8080/8085 系统中地址间距, 8086 系统不用④ D3 ( LTIM )

D3=1 中断请求是电平触发方式 ; D3=0 上升沿触发方式。

⑤ D5~D7 ( A5~A7 )8080/8085 系统中断服务程序页面地址, 8086 系统不用

※ 注:初始化命令字一般在初始化 8259 时才写入,而且写入有严格的顺序,先写 ICW1 ,最后写 ICW4

Page 36: 中断系统

计算机原理讲义

8259 初始化命令字2. ICW2

※ A0=1 ,跟在 ICW1 后表示对 ICW2编程① A15~A8 为 8080/8085 系统中页面地址高 8位;② T7~T3 为 8086 系统中的中断类型码的高 5位,低 3

位根据申请端自动填充。例 若 ICW2 = 0000 1000B ,则 8259A 的 IR3 引脚上的

中断请求的中断类型码为 0000 1011 即 0x0B

A0

1

D7 D6 D5 D4 D3 D2 D1 D0

A15/T7 A14/T6 A13/T5 A12/T4 A11/T3 A10 A9 A8

Page 37: 中断系统

计算机原理讲义

8259 初始化命令字3. ICW3

※ A0=1 ,且 ICW1 的 D1=0 ( SNGL ),跟在 ICW2表示对 ICW3编程

① 主片 Si=1表示该中断申请来自从片② 从片 ID2~ID0 对应从片的标识位,响应中断时第一

个 INTA ,主片从 CAS2 ~CAS0送出识别号,若从片的 CAS2~CAS0 与识别号相同,在第二个 INTA送出中断类型码。 ID2 ~ID0 与从片连接到主片的输入端相对应。

A0 D7 D6 D5 D4 D3 D2 D1 D01 S7 S6 S5 S4 S3 S2 S1 S0

A0 D7 D6 D5 D4 D3 D2 D1 D01 0 0 0 0 0 ID2 ID1ID0

主片

从片

Page 38: 中断系统

计算机原理讲义

8259 初始化命令字4. ICW4

※ A0=1 ,且 ICW1 的 D0=1 ,跟在其他初始化字后表示对ICW4编程

① D0 ( pm )D0=1 为 16位处理器体系; D0=0 为 80/85 处理器

体系② D1 ( AEOI )

D1=1 自动结束中断方式,在第二个 INTA 清 ISR 中的对应位 ;

D1=0 非自动结束中断方式,中断结束时发 EOI命令清 ISR 中的对应位

A0

AEOIM/SBUF

D7 D6 D5 D4 D3 D2 D1 D0

1 0 0 0 SFNM upm

Page 39: 中断系统

计算机原理讲义

8259 初始化命令字③ D2 ( M/S )

在缓冲方式下( BUF=1) ,选择主片和从片, M/S=1为主片, M/S=0 为从片。

在非缓冲方式下,由 SP/EN 引脚设定主片和从片。④ D3 ( BUF )

D3=1 为缓冲工作方式, SP/EN 为缓冲选通信号。单片系统都置 1 ;

D3=0 为非缓冲工作方式。⑤ D4 ( SFNM )

D4=1 为特殊全嵌套方式,此时允许同级中断再次进入,一般用于多片级联方式;

D4=0 为普通全嵌套方式,禁止同级中断再次进入。

Page 40: 中断系统

计算机原理讲义

8259 操作命令字(二)操作命令字

操作命令字可在任何时候写入 8259A ,且无顺序。1. OCW1 ( Operation Command Word )

※ A0=1 表示设置 OCW1 Mi=1 表示屏蔽 IRi 输入中断请求例屏蔽键盘

IN AL, 22H

OR AL, 02H / AND AL, 0FDH

OUT 22H, AL

A0 D7 D6 D5 D4 D3 D2 D1 D0

1 M7 M6 M5 M4 M3 M2 M1 M0

Page 41: 中断系统

计算机原理讲义

8259 操作命令字2. OCW2

※ A0=0 ,且 D4D3 = 00 ,表示对 OCW2编程① R 优先权循环状态

R=1 优先权自动循环; R=0 优先权不循环② SL

设定标志。 SL=1由 L2、 L1、 L0 指明中断号或最低优先权

③ EOI

中断结束命令标志,非自动结束方式时清 ISn

一般 EOI 指令为 MOV AL, 20H

OUT 20H, AL

A0 D7 D6 D5 D4 D3 D2 D1 D0

0 R SL EOI 0 0 L1 L0L2

Page 42: 中断系统

计算机原理讲义

8259 操作命令字R SL EOI

0 0 1 非特殊 EOI 结束中断命令,清除当前的中断响应0 1 1 特殊 EOI命令,清除由 L2 L1 L0 指示的中断响

应1 0 1 特殊 EOI命令,清除当前的中断响应,优先级循环一次

1 0 0 设置 8259A 在中断自动结束模式下按优先级自动循环方式工作

0 0 0 取消 8259A 在中断自动结束模式下的优先级自动循环工作方式

1 1 1 结束由 L2 ~ L0 指示的中断,并使 L2 ~ L0 为最低优先级

1 1 0 设定最低优先级特殊循环 ,此时由 L2 ~ L0 指出最低优先级

0 1 0 无操作

Page 43: 中断系统

计算机原理讲义

8259 操作命令字3. OCW3

※ A0=0 ,且 D4D3 = 01 ,表示对 OCW3编程① ESMM SMM

1 1 设置特殊屏蔽,无优先级,未屏蔽中断申请均可进入

1 0 取消特殊屏蔽② P=1 ,设置 8259A 为查询工作方式,此时 8259A 不发

INT 信号, CPU通过查询指令决定服务程序。查询得到格式如下表所示

A0 D7 D6 D5 D4 D3 D2 D1 D0

0 0 ESMM SMM 0 1 RR RISP

Page 44: 中断系统

计算机原理讲义

8259 操作命令字

I=1 表示有中断请求 W2 W1 W0 为当前最高优先级的中断请求中断号

③ P=0 ,由 RR 和 RIS 设置下一个读取的寄存器 RR RIS

1 0 在下一个 A0 = 0端口读 IRR

1 1 在下一个 A0 = 0端口读 ISR

若下一个 A0 = 1 ,则读取 IMR 寄存器

A0 D7 D6 D5 D4 D3 D2 D1 D00 W1 W0W2I X X X X

例:读取 ISR 到 AL 中 mov al, 0BH

out 20H, al

IN al, 20H

; 读取 IMR 到 AL 中 mov al, 0AH

out 20H, al

IN al, 22H

Page 45: 中断系统

计算机原理讲义

8259 命令字举例四.8259A 初始化编程举例(一) 8259A初始化编程顺序

级联方式?

ICW1

ICW2

ICW3

要 ICW4?

ICW4

N

Y

Y

N

Page 46: 中断系统

计算机原理讲义

8259 命令字举例(二) IBM PC/XT 机单片 8259A初始化

要求:① 端口地址为 20H 和 22H

② 接收 8 个中断请求信号为边沿触发③ 选择全嵌套方式, IR0 为最高优先级, IR7 为最低优先

级④ 设定 IR0 中断类型码为 08H

注: 8259A 的地址线 A0 是连接到系统地址总线的 A1 上

A0AEOIM/SBUF

D7 D6 D5 D4 D3 D2 D1 D01 0 0 0 SFNM upmICW4

A00 IC4SNGLADILTIM1A7 A6 A5

D7 D6 D5 D4 D3 D2 D1 D0ICW1

A01 XXX T3T4T7 T6 T5

D7 D6 D5 D4 D3 D2 D1 D0ICW2

Page 47: 中断系统

计算机原理讲义

8259 命令字举例初始化程序段

INTA0_0 EQU 20H

INTA0_1 EQU 22H

MOV AL, 13H

OUT INTA0_0, AL ;ICW1

MOV AL, 08H

OUT INTA0_1, AL ;ICW2

MOV AL, 09H

OUT INTA0_1, AL ;ICW4

Page 48: 中断系统

计算机原理讲义

8259 命令字举例(三)在 AT/286 以上机器上,使用两片 8259A 级联组成 15 个中断申请输入端要求:① 端口地址主片为 20H 和 22H ,从片为 A0H 和 A2H 。② 接收上升沿触发中断请求信号。③ 选择全嵌套方式,优先级排列次序为 0 级最高,依次为

1 级, 8~15 级,然后是 3~7 级。④ 采用非缓冲方式,主片 SP/EN 接 +5V ,从片 SP/EN 接

地⑤ 设定主片中断类型码为 08H~0FH ,从片为 70H~77H

Page 49: 中断系统

计算机原理讲义

8259 命令字举例※初始化命令字

IC4SNGLADILTIM1X XICW1 11HX

XXX T3T4T7 T6 T5ICW208H主

从 70H

S7 S6 S5 S4 S3 S2 S1 S0主ICW3 04H

0 0 0 0 0从 0 1 0 02H

AEOIM/SBUF0 0 0 SFNM upmICW4 01H

Page 50: 中断系统

计算机原理讲义

8259 命令字举例初始化程序段INTA00 EQU 20H

INTA01 EQU 22H

INTB00 EQU 0A0H

INTB01 EQU 0A2H

MOV AL, 11H

OUT INTA00, AL ;主片 ICW1

JMP SHORT $+2 ;I/O 口要求延时MOV AL, 08H

OUT INTA01, AL ;ICW2

JMP SHORT $+2

MOV AL, 04H

OUT INTA01, AL ;ICW3

JMP SHORT $+2

MOV AL, 01H

OUT INTA01, AL ;ICW4

JMP SHORT $+2

MOV AL, 11H

OUT INTB00, AL ;从 ICW1

JMP SHORT $+2

MOV AL, 70H

OUT INTB01, AL ;ICW2

JMP SHORT $+2

MOV AL, 02H

OUT INTB01, AL ;ICW3

JMP SHORT $+2

MOV AL, 01H

OUT INTB01, AL ;ICW4