第8章 中断系统与中断控制器8259A
8.1计算机组成之.8259A详细说明

4
5 6 7 8 9 10 11 12 13 14
25
24 23 22 21 20 19 18 17 16 15
D3
D2 D1
D0
CAS0 CAS1 GND
IR0
INT SP/EN
CAS2
-7-
中断系统和中断控制器8259A
中断响应线INTA:接收CPU在中断响应周期发来的中断响应 信号,8259A接到此信号后,送中断类型码(编程设定);
- 10 -
中断系统和中断控制器8259A
2.屏蔽中断源方式
程序中安排清除中断允许标志位指令(CLI),可以使CPU对所有 可屏蔽中断INT一起进行屏蔽,但无法实现选择性屏蔽。8259A可编程设 定允许或屏蔽指定的可屏蔽中断源:
普通屏蔽方式:通过将中断屏蔽寄存器IMR的某些位置1, 使对应的中断请求被屏蔽,目的是屏蔽高优先级的中断源; 特殊屏蔽方式:该方式主要用于中断嵌套时,开放低优先级 的中断请求,使其能得到及时响应。在预实现特殊屏蔽的中 断服务程序中通过置入控制字将IMR中相应位置1, ISR中 对应位会自动清0,从而屏蔽了本级中断,使低优先级的中 断可以得到响应。在该中断服务程序结束前要退出特殊屏蔽 方式,恢复ISR相应位,再用EOI结束中断服务程序,而且 特殊屏蔽期间被响应的低级中断服务程序必须用特殊中断结 束命令退出。
第8章中断系统和中断控制器8259A

4. 保存现场
CPU响应中断,首先需要禁止CPU响应中 断信号,并保存中断返回地址以及其它可 能被破坏的寄存器
8086/8088 CPU的基本中断现场保护需要 将CS寄存器和IP寄存器压入堆栈
普通屏蔽方式 特殊屏蔽方式
普通中断结束方式 特殊中断结束方式
中断触发方式 数据线连接方式
边沿触发方式 电平触发方式 缓冲方式 非缓冲方式
(1)中断触发方式 按照引入中断请求的方式,8259A有下列几种工作方式:
1>边沿触发方式 8259A将中断请求输入端出现的上升沿,作为中断请求
信号,上升沿后 相应引脚,可以一直保持高电平。
可编程,提高中断优先管理的灵活性。
2. 8259A外部结构
CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND
1
8259A
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
2. 优先级判别
多个中断源同时发起中断请求时,CPU需要 对多个中断源的优先级进行判断,响应最紧 急的中断请求。
中断源的优先级需要根据中断源的紧迫性、 重要性以及外设处理速度等进行综合考虑
不可屏蔽中断发生,优先响应不可屏蔽中断。
3. 中断响应
第八章 中断和可编程中断控制器8259A

微型计算机原理与接口技术
第七章 微型计算机中断系统
例:某中断类型号为68H,其中断服务程序存在 A000H:2050H开始的存储单元,处理过程如图所示:
INT 68H MOV AX,0 ① 向量地址 =68H4 =1A0H ② 0:19C 类型 67H 中断向量 1A0 50 20 1A2 00 A0 1A4 类型 69H 中断向量 ⑤ 中断处理程序 A000:2050 STI PUSH DS A000 CS ③ 2050 IP
山东工商学院 高群
微型计算机原理与接口技术
第七章 微型计算机中断系统
可屏蔽中断从 8259A 的 8 个输入端引入,一般情况 下,优先级从高到低排列的次序为IR0~IR7。
山东工商学院 高群
微型计算机原理与接口技术
第七章 微型计算机中断系统
主程序运行中,IR2、IR4同时提出中断请求。IR2优先级 高,先为IR2服务。在IR2的服务程序中,要用STI指令开 中断,允许更高级中断进入。
专用 中断向量 (5 个)
2 号向量(非屏蔽)
00008H
1 号向量(单步)
00004H
0 号向量(除法错)
00000H
CS IP
山东工商学院 高群
16 位
微型计算机原理与接口技术
第七章 微型计算机中断系统
中断类型号是系统分配给每个中断源的代号。 其中00H~04H为专用中断,05H~3FH为系统保 留中断,用户一般是不能对它们定义的(这里面有一 些为固定的用途,如INT 21H即为MS-DOS的系统 调用),40H~FFH为用户定义的中断。 中断向量指针:中断向量最低字节存放的地址称 为中断向量指针(即这个中断向量存放的地址)。 中断向量指针=中断类型号×4
第8.1章 中断控制器8259A

第8章 中断和DMA技术
8) 控制逻辑 在8259A的控制逻辑电路中有一组初始化命令字寄存器 ICW1~ICW4和一组操作命令字寄存器OCW1~OCW3,利用它们 通过编程设置来管理8259A的工作方式。
第8章 中断和DMA技术
2.外部引脚 • D7~D0:数据线。 • INT:中断请求,和CPU的INTR引脚相连,用来向CPU提出中 断请求。 • INTA#:中断响应,接收CPU的中断响应信号。 –8259A要求响应信号是两个连续的负脉冲。若CPU接收到 中断请求,并且允许中断,当一条指令执行完时,则在 随后的两个总线周期,INTA#引脚连续发出两个负脉冲, 到第二个负脉冲结束,则CPU读取8259A送到数据总线上 的中断类型号。 • RD#:读信号,低电平有效,通知8259A将某个寄存器的内容 送到数据总线上。 • WR#:写信号,低电平有效,通知8259A从数据线上接收数据 (即命令字)。
第8章 中断和DMA技术
8.1.2 8259A的中断过程
根据8259A的内部结构,其工作的过程如下: (1)外部中断源通过IR0-IR7输入高电平中断请求信号; (2) 外部中断源的中断请求信号使中断请求触发器IRR的相应 位置“1”,并与IMR按位相“与”,送给优先权判决电路。 (3) 优先权判决电路PR从IRR中检测出优先级最高的中断请求 位,并将其与ISR中记录的正在被CPU服务的中断进行优先级 比较。当提请的中断优先级高于正在服务的中断优先级时, 中断优先权判决电路就向控制逻辑发出有效的中断请求信号。
– 中断请求后,8259A对当前请求中断中优先权最 高的中断IRi予以响应,将其向量号送上数据总 线,对应ISR的Di位置位,直到中断结束(ISR 的Di位复位) – 在ISR的Di位置位期间,禁止再发生同级和低级 优先权的中断,但允许高级优先权中断的嵌套
第8章 中断系统与中断控制器8259A

第8章中断系统与中断控制器8259A
(4)恢复现场:用弹栈指令把保护现场时入栈寄存器内容 恢复,注意应按先进后出的原则,恢复寄存器原来的内容 值。出栈后,堆栈指针也应恢复到进入中断处理时的位置。 (5)中断返回: 8086CPU必须根据中断结束方式,发中断 结束指令,并在最后用一条中断返回指令IRET。中断返 回指令IRET的作用是将断点的内容重新送入CS和IP寄存 器和标志寄存器,保证CPU从断点开始执行原来的程序。
第8章中断系统与中断控制器8259a存储器地址中断向量地址存储器内容中断向量对应中断类型号00000h中断服务程序入口偏移地址低8位00001h中断服务程序入口偏移地址高8位00002h中断服务程序入口段基址低8位00003h中断服务程序入口段基址高8位00004h中断服务程序入口偏移地址低8位00005h中断服务程序入口偏移地址高8位00006h中断服务程序入口段基址低8位00007h中断服务程序入口段基址高8位003f8h中断服务程序入口偏移地址低8位254003f9h中断服务程序入口偏移地址高8位003fah中断服务程序入口段基址低8位003fbh中断服务程序入口段基址高8位003fch中断服务程序入口偏移地址低8位255003fdh中断服务程序入口偏移地址高8位003feh中断服务程序入口段基址低8位003ffh中断服务程序入口段基址高8位表818086cpu中断向量表第8章中断系统与中断控制器8259a每个中断向量占用4个存储单元4个单元中的前2个单元存放的是中断服务程序所在段内的偏移量ip的内容16位地址
第8章中断系统与中断控制器8259A
3. 中断响应 根据中断请求的中断源的类型不同,中断响应分成以下两 种情况: (1)对非屏蔽中断请求的响应:该请求信号与CPU的NMI 引脚线相连接,如果CPU检测到该请求,CPU执行完当前 指令后就自动执行相应的中断服务程序,CPU不需要发出 中断响应信号。 (2)对可屏蔽中断INTR请求的响应:要检查IF,如IF=1, CPU允许中断,就会在结束当前指令后响应该外设的中断 请求。CPU响应可屏蔽中断时要自动完成下列几步操作:
第8章 中断系统

中断执行示意图如下:
第18页
2012年6月11日星期一
第8章
结束当前指令?
内部中断?
中断系统
①
关中断 标志寄存器入栈 TEMP=TF(暂存) 清除IF、TF标志 断点(CS,IP)入栈 取中断向量 进入中断服务程序 开中断 执行中断服务程序 Y
N
有NMI?
有
无 N
无
有INTR?
有
IF=1?
Y Y
TF= N 1? 取中断类型码
第8页 2012年6月11日星期一
第8章
8.2.2 中断处理
中断系统
1.中断的处理过程 ⑴关中断。目的:在现场保护过程中,CPU不应该 响应更高级的中断源申请。 ⑵保存断点和现场。即将现行状态字和断点地址相 继压入堆栈。目的:在中断处理完后返回主程序时, 恢复原程序运行状态。 ⑶开中断。目的:允许更高级中断请求能够及时得 到响应,实现中断嵌套。 ⑷转入中断服务程序。目的:完成的最终目的。 ⑸ 退出中断。返回到主程序的执行。
第20页 2012年6月11日星期一
第8章
8.3.4 软件中断
中断系统
软件中断有如下特点: 1.INT n 指令,中断类型码是 n。 2.不执行中断响应总线周期,不读取中断类型码。 3.软件中断不受IF的影响。 4.可进行中断嵌套,即可以响应非屏蔽中断;当被软 件中断调用的中断处理子程序使IF=1时,那么也可响 应屏蔽中断的高优先级请求。 5.软件中断没有随机性,这是因为软件中断是由程序 中的中断指令引起的,何时执行,是事先知道的,所 以软件中断失去了随机性。
第21页 2012年6月11日星期一
第8章
8.4 中断控制器8259A
一、引言
中断系统
微机原理习题答案8章

第8章中断系统与可编程中断控制器8259A1.什么叫中断?8086微机系统中有哪几种不同类型的中断?答:在CPU执行程序的过程中,由于某个事件的发生,CPU暂停当前正在执行的程序,转去执行处理该事件的一个中断服务程序,待中断服务程序执行完成后,CPU再返回到原被中断的程序继续执行。
这个过程称为中断。
8086微机系统中有3种中断:1)外部可屏蔽中断。
2)外部不可屏蔽中断。
3)内部中断2.什么是中断类型?它有什么用处?答:通常用若干位二进制编码来给中断源编号,该编号称为中断类型号。
8086微处理器用8位二进制码表示一个中断类型,有256个不同的中断。
这些中断可以划分为内部中断、外部不可屏蔽中断、外部可屏蔽中断三类。
用处:使CPU识别中断源,从而能正确地转向该中断源对应的中断服务程序入口。
3.什么是中断嵌套?使用中断嵌套有什么好处?对于可屏蔽中断,实现中断嵌套的条件是什么?答:微处理器在处理低级别中断的过程中,如果出现了级别高的中断请求,微处理器停止执行低级中断的处理程序而去优先处理高级中断,等高级中断处理完毕后,再接着执行低级的未处理完的程序,这种中断处理方式成为中断嵌套。
使用中断嵌套的好处是能够提高中断响应的实时性。
对于某些对实时性要求较高的操作,必须赋予较高的优先级和采取中断嵌套的方式,才能保证系统能够及时响应该中断请求。
对于可屏蔽中断,实现中断嵌套的条件有:(1)微处理器处于中断允许状态(IF=1)(2)中断请求的优先级高于正在执行的中断处理程序的优先级。
(3)中断请求未被8259屏蔽。
(4)没有不可屏蔽中断请求和总线请求。
4.什么是中断向量?中断类型号为1FH的中断向量为2345H:1234H,画图说明它在中断向量表中的存放位置。
答:中断向量为每个中断服务子程序的入口地址,为32位(16位的偏移地址和16位的段地址),在中断向量表中占用4个地址单元。
在8086CPU组成的计算机系统中,采用最低的1024个地址单元(称为0页)来存储中断向量。
8.3 可编程中断控制器8259A及其应用

8259A的工作方式( 8259A的工作方式(2)——结束中断的方式 的工作方式
注意: 注意:
级连方式下,一般不用中断自动结束方式, 级连方式下,一般不用中断自动结束方式,而用 非自动结束方式。不管用哪一种非自动结束方式, 非自动结束方式。不管用哪一种非自动结束方式, 都至少连发两次中断结束命令,一次对主片, 都至少连发两次中断结束命令,一次对主片,一 次对从片。 次对从片。
(5)数据总线缓冲器 数据总线缓冲器
是双向三态8位缓冲器,用于连接系统数据总线和 8259A 内 部 总 线 , 传 递 CPU 发 送 的 控 制 信 息 , 返 回 8259A的状态信息 的状态信息
(6)读/写控制电路 读 写控制电路
Di位为 表示 中断正在服务中;为0表示没有被服务 位为1表示 中断正在服务中; 位为 表示IRi中断正在服务中 表示没有被服务
第8章 中断系统
§8.3 可编程中断控制器8259A及其应用
第8章 中断系统
中断接口8259A是可编程中断控制器, 中断接口8259A是可编程中断控制器,用于管理 8259A是可编程中断控制器 8080/8085、8086/8088、80286/80386的可屏蔽中断 8080/8085、8086/8088、80286/80386的可屏蔽中断
8.3.3
8259A中断控制器的引脚( 8259A中断控制器的引脚(1) 中断控制器的引脚
8259A是一个使用+5V电源的28脚双列直插芯片。 8259A是一个使用+5V电源的28脚双列直插芯片。 是一个使用+5V电源的28脚双列直插芯片 中断请求输入信号,一般IR ① IR0~IR7—中断请求输入信号,一般IR0优先 级最高, 最低,但优先级可由编程改变。 级最高,IRQ7最低,但优先级可由编程改变。 INT—中断请求输出信号, CPU的INTR引脚 引脚。 ② INT—中断请求输出信号,接CPU的INTR引脚。 INTA—中断响应,由此脚接收来自CPU CPU的中断 ③ INTA—中断响应,由此脚接收来自CPU的中断 响应信号。 响应信号。 ④ CS—片选,当CS有效时,该芯片工作。 CS—片选, CS有效时 该芯片工作。 有效时, ⑤ WR—写信号,有效时CPU将命令字写入8259A。 WR—写信号,有效时CPU将命令字写入8259A CPU将命令字写入8259A。
8中断及8259

❖ 在遇到等待指令WAIT或串操作指令 (MOVSB/STOSB/LODSB等)时,可以响应, 但要等一个操作完成且必须注意保护现 场,以免返回后无法正确执行
19
8086的中断响应总线周期 :
32
8. 控制部件
❖ 输出中断请求信号INT至CPU ❖ INTA#接收来自CPU的中断应答信号,应为2
个负脉冲才有效;
33Байду номын сангаас
控制部件组成
控制部件 34
控制部件(7个寄存器)
❖ICW1~ICW4(用于初始化,一般工 作过程中不再改变)
❖OCW1~OCW3(用于中断处理的动态 控制,可多次修改)
35
❖通过OCW3设置,用于中断服务程序 中仅对本级中断进行屏蔽。对IMR置 1的同时使ISR的相应位清0,使得低 和高级中断都能被响应。
46
屏蔽中断源方式举例
中断源 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 普通 ISR IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS2 屏蔽 内容 0 0 0 1 0 0 0 0 方式 IMR 1 0 0 1 1 1 0 0 特殊 ISR 0 0 0 0 0 0 0 0 屏蔽 方式 IMR 0 0 0 1 0 0 0 0
37
1. 设置优先级的方式
❖(1)全嵌套方式:(默认方式) ❖0级最高,只进行高级中断嵌套。PR
比较ISR与IRR中优先级高低决定是否 中断嵌套。
38
8级中断嵌套过程
39
(2)特殊全嵌套方式:(级联系统)
❖0级最高,但同级中断也会响应、 嵌套。级联系统中的主片必须使用 该方式,保证同一从片但不同优先 级的中断能被响应;但该方式又不 适合在中断请求频繁的场合下使用。
8.1 中断

安徽理工大学
8.1 中断
第8章 中断和8259A
2.8086的中断响应与处理
重点介绍从INTR引脚引入的可屏蔽中断的类型码是如 何形成的。CPU响应INTR中断后,要执行两个连续的 中断响应INTA总线周期,其时序图如图8.8
8086可处理256(0~FFH)类中断,每类中断有一个入 口地址(中断向量),包含CS和IP,共4个字节。因此 存 储 256 个 地 址 , 需 要 占 用 1K 字 节 , 它 们 位 于 内 存 00000~003FFH的区域中。
将中断类型号n乘以4就能找到规定类型的中断向量,规 定IP在前,CS在后。
安徽理工大学
8.1 中断
第8章 中断和8259A
8.1.1 中断概念和分类
1.中断的定义和功能
中断定义:
计算机在执行正常程序过程中,暂时中止当前程 序的运行,转到中断处理程序去处理临时发生的事 件,处理完后又恢复原来程序的运行,这个过程称 为中断(Interrupt)。
安徽理工大学
8.1 中断
然后找到中断服务程序的入口地址,转去执行相 应的中断服务程序。
中断服务程序结束时,执行中断返回指令IRET 返回正常程序继续执行。
如何寻找中断服务程序的入口地址,是中断处理 过程中的一个重要环节。
安徽理工大学
8.1 中断
3.中断向量表
第8章 中断和8259A
2)中断向量表
中断向量表用来存放中断服务程序的入口地址。
安徽理工大学
8.1ቤተ መጻሕፍቲ ባይዱ中断
第8章 中断和8259A
中断系统与可编程中断控制器8259A

8.1 中断概念及处理过程
一、中断系统中的名词概念-中断
中断:指CPU暂停正在执行的程序,转去执行处理中断事件 的中断服务程序,待执行完中断服务程序再返回到原被中断 的程序继续执行。
主
中断申请
程 序
中断服 务程序
返 回
5
8.1 中断概念及处理过程
一、中断系统中的名词概念-中断源及分类
•
8086用8位二进制码表示一个中断类型,共有256个中断,可 中分断为源两:大引类起:中断的原因,或产生中断请求的来源
可屏蔽中断 INTR(高电平)
外部中断源 非可屏蔽中断 NMI(上升沿)
中断源
除法错中断
分类
单步中断
内部中断源 断点中断
运算溢出中断
软中断
6
8.1 中断概念及处理过程
一、中断系统中的名词概念-中断源及分类
8086中断结构
外部不可屏蔽中断
外
部
NMI
INTR
可
8086 微处理器中断逻辑
INTA 8259A
中断服务程序:处理中断事件的程序段。如除法错中断服 务程序、输入输出中断服务程序等。
中断服务程序与一般的子程序对比:子程序的调用是由程 序设定,因此是确定的而中断服务程序由某个事件引发, 它的发生往往是随机的、不确定的。
屏 蔽
中
INT n INT 3 INTO 除法 单步
断
指令 断点 溢出 出错 中断
请
求
7
8.1 中断概念及处理过程
一、中断系统中的名词概念-中断类型号 为了能使CPU识别中断源,从而能正确地转向该中断源对应的 中断服务程序入口,8086用8位二进制编码来给中断源编号, 该编号称为中断类型号,共有256个中断。
微机原理 第8章 中断控制器8259A 习题及参考

第八章中断控制器8259A1. 8259A的初始化命令字和操作命令字在设置上有什么不同?答:初始化命令字:是在计算机系统启动时,由初始化程序设置的,且一旦设定,一般在系统工作过程中就不再改变。
操作命令字:是由应用程序设定的,用来对中断处理过程作动态控制。
在系统运行过程中,可被多次设置。
2. 8259A中的中断屏蔽寄存器(IMR)与8086的中断允许标志(IF)有何差别?在中断响应过程中,它们是怎样配合工作的?答:差别有三:差别1——IMR中的某位为1时,说明对应此位的中断请求当前是受到屏蔽的;而IF位为0时,说明可屏蔽中断请求是受到屏蔽的。
差别2——IMR可以屏蔽部分中断请求;而IF为0时,屏蔽的是所有可屏蔽中断请求。
差别3——IMR是8259A中的一个8位寄存器;而IF是CPU中16位标志寄存器中的1位控制标志。
配合:只有当IMR中的某位为0且IF=1时,CPU才有可能响应对应此位的中断请求。
具体过程是:由中断请求寄存器(IRR)接收外部的中断请求并锁存中断请求,IMR中的对应位决定是否让这些请求通过。
如果IMR的对应位为1,则说明此中断当前受到屏蔽,即对它进行了封锁,而不让其进入优先级裁决器(PR);如果IMR的对应位为0,则PR把新进入的中断请求与当前服务寄存器(ISR)中指示的当前正在处理的中断作比较,若判断出新进入的中断请求具有足够高的优先级,则PR通过相应的逻辑电路使8259A的INT端为1,从而向CPU发出一个中断请求;如果此时CPU的IF=1,则CPU执行完当前指令后,就会响应该中断请求;否则,若IF=0,则CPU不予响应。
3. 8259A的全嵌套工作方式与特殊全嵌套工作方式有何不同?答:工作在全嵌套方式下,当处理某一级中断时,只有当优先级更高的中断请求到来,才会实施中断嵌套。
当同级中断请求到来时,不会给予响应;而工作在特殊全嵌套方式下,当处理某一级中断时,若有同级的中断请求到来,也会给予响应,从而实现对同级中断请求的特殊嵌套。
8259A中断控制器

– 如果进入的中断申请比 ISR 中记录的中断优先级高, » 则通过 8259A 的 INT 引脚向 CPU发出中断请求信号; – 如果进入的中断申请不比 ISR 中记录的中断优先级高, » 同级或低级,则不向 CPU 发中断请求信号。
① 中断申请寄存器IRR 锁存外部的中断申请。 • 若 IR0~IR7 引脚上有中断申请,则将 IRR 相应位置1
(1) 处理外设中断申请,决定是否向 处理外设中断申请,决定是否向CPU发中断申请信号 发中断申请信号 ① 中断申请寄存器IRR 锁存外部的中断申请。 • 若 IR0~IR7 引脚上有中断申请,则将 IRR 相应位置1 ② 中断屏蔽寄存器 IMR 决定 IRR 中的中断申请 是否进入优先级裁决器 PR。 • IMR对应位为 0,允许中断申请进入优先级裁决器,
第二个 中断响应周期 T1 T2 T3 T4
向量类型
三、8088CPU的中断优先权 8088CPU的中断优先权
• 优先级 • 高
• 非屏蔽中断 • 可屏蔽中断
低
• 内中断 ( 除零,INT 指令,断点,INTO指令 )
•
低
内中断( 单步 )
当有多个中断源同时产生中断申请时, 当有多个中断源同时产生中断申请时, CPU先响应优先权最高的中断源,再 先响应优先权最高的中断源, 先响应优先权最高的中断源 响应优先级较低的中断源。 响应优先级较低的中断源。
– ISR中的某位为1,表示CPU正在响应此级中断, » 即正在执行此中断源的中断子程; – ISR中的某位为 0,表示CPU没有或已响应完此级中断, » 即不在执行此中断源的中断子程 总线 D0 ~ D7 A0 A5 ~ A9 IOR IOW INTA INTR 片 选 CS 译 码 RD WR INTA INT 数据线 A0 D0 ~ D7
第八章 中断控制器8259.讲义

第八章中断控制技术和8259第一节中断控制技术补充一中断处理的隐操作及堆栈的使用⒈隐操作CPU响应中断转去执行中断服务程序之前,其状态标志和程序断点地址进栈,以及中断返回时,断点和标志信息的退栈,是由机器硬件安排自动完成的,无需外界干预,故称为中断处理的隐操作,这些操作都使用堆栈。
⒉堆栈堆栈是一种专用的"后进先出"(LIFO)的存储区,用来保存断点、现场信息及传递子程序所需的参数,广泛用于中断处理、子程序调用及返回处理。
8088/8086的堆栈设置在存储器中,由SS堆栈段寄存器和SP堆栈指针来定位。
SS指向当前栈的段基址,是栈区的最低地址。
SP包含距段基址的偏移地址,也称为堆栈的深度,一个栈最大的深度只能占有64KB空间。
SP作为堆栈指针始终指向栈顶(TOS),栈顶在程序执行过程中,随着进栈(PUSH)与退栈(POP)操作而发生变化,有所谓向下生长和向上生长之分。
8088/8086的堆栈是向下生长型,即在进栈操作时,栈顶向下生长,使堆栈的地址单元号从大到小,递减2,趋向堆栈段基址SS;在退栈操作时,堆栈地址单元号从小到大,递增2,趋向栈底,空栈时,SP指向堆栈段的最高地址,即栈底。
栈底也就是SP的初值,栈底一经设定就固定不变。
⒊堆栈操作①建栈操作STACK1 SEGMENT STACKBUFFER DB 30 DUP(0)TOP_STACK LABEL WORDSTACK1 ENDSCODE SEGMENTASSUME CS:CODE,SS:STACK1START:┆MOV AX,STACK1MOV SS,AX ;将当前堆栈段基址送入SSMOV SP,TOP_STACK ;将堆栈段偏移地址送入SP┆②进栈操作PUSH AXPUSH BX③弹栈操作POP AXPOP BX二中断向量的装入中断向量并非常驻内存,而是开机上电时,由程序装入内存指定的中断向量区的。
BIOS程序负责0~1FH共32个中断向量的装入。
微机原理与接口课件中断系统-8259A控制字_ppt课件

No Image
0 ESMM SMM 0 1 P
Y 用 ICW4 设:为特殊全嵌套方式? 为缓冲方式? 为自动EOI方式? 为8086/8088系统? END
8259A的初始化流程
例:PC/XT 系统中8259A的初始化编程 20H、21H为8259A的端口地址,
在BIOS 中,8259A的初始化程序段如下:
MOV AL, 13H OUT 20H, AL ; ICW2=08H, IR0~IR7对应的中断类型号 ; 为08H~0FH OUT 21H, AL ; ICW4= 00001001B, 正常的嵌套方式, MOV AL, 09H ; ICW1=00010011B, 边沿触发,单片使用, ; 要 ICW4. MOV AL, 08H
No Image
D7 D6 D5 D4
D3
D2 D1
D0
1 LTIM SNGL ICW4
特征位
例:某8086微机系统中,使用单片8259A, 中断请求信号为上升沿触发,需要设置ICW4, 端口地址为 20H , 21H ,则其初始化命令字 ICW1应为:00010011=13H,设置ICW1的指 令为:
① AEOI = 1 自动中断结束方式
当CPU 发出第二个INTA 后,ISR 中的相应 位复位,此时,不适宜实现中断嵌套。
No Image
(如何使ISR中对应位清0)
② AEOI = 0 非自动中断结束方式
由程序发出EOI 命令 (由8259A 的
OCW2 实现),使ISR 中相应位复位。
No Image
4. 中断方式字 ICW4 A0
1
奇地址
D7 D6 D5
0 0
D4
微机原理--第八章-中断系统

裁决器
0
IR6
0
IR7
选 CS 译 码
RD
WR
INTA INT
ICW1 芯片控制 A0
A0
1 × I3 I4 0 1 0 0 1 0 1 0 0 1
ICW2 中断类型号 1
ICW3 主从片连接关系
1 ICW4 方式控制
1
OCW1 中断屏蔽寄存器 IMR
00
0
SP/EN
CA0
OCW2 优先级设置、发EOI
上有中断申请,则将IRR相应位置1;
总线
D0 ~ D7 A0
A5 ~ A9
IOR IOW INTA INTR
数据线 D0 ~ D7
A0
ISR 0
当前 0
中断 服务
• 非屏蔽中断 – 由NMI引脚引起的中断,称非屏蔽中断。 – 当NMI引脚上产生上升沿信号,CPU必响应此中断请 求,即NMI引脚上的中断请求不受IF标志的控制, – IF不能屏蔽NMI引脚上的中断请求。
8086/8088CPU的中断分类图
中断源
外部中断 内部中断
非屏蔽中断 可屏蔽中断 内部硬件中断
SP/EN CA0 CA1 CA2
GND
+ 5V
电子钟时间基准
键盘 保留 串 口2 串 口1 硬盘 软盘 打印机
用于多片 8259A
级连情况
7.3.4 8259A的控制字
8259A中断控制器
处理部分
0
ISR 0
当前 0
中断 0
服务 0
寄存器
0 0
0
IRR
中断申请
0 0
寄存器 0
0
PR
0
优先级
第八章 中断控制器8259

② 中断屏蔽寄存器 IMR 决定 IRR 中的中断申请 是否进入优先级裁决器 PR。
IMR对应位为 0,允许中断申请进入优先级裁决器, 为 1,不允许进入,中断申请被IMR屏蔽。
③ 当前中断服务寄存器 ISR 记录CPU正在响应的中断。
ISR中的某位为1,表示CPU正在响应此级中断, ISR中的某位为 0,表示CPU没有或已响应完此级中断。
10
3). 结束中断处理的方式 (1) 中断自动结束方式 (2)一般的中断结束方式 (3)特殊的中断结束方式 4). 连接系统总线的方式 (1)缓冲方式 (2)非缓冲方式 5). 引入中断请求的方式 (1)边沿触发方式 (2)电平触发方式 (3)中断查询方式
11
4. 8259A的初始化命令字 初始化命令字必须按顺序填写,ICW1要求写 到偶地址端口,其余写到奇地址端口。 1)ICW1(芯片控制初始化命令字)
INT
0 0
OCW2 优先级、发EOI OCW3 特殊屏蔽设置
18
② 中断屏蔽寄存器 IMR 决定 IRR 中的中断申请 是否进入优先级裁决器 PR。 IMR对应位为 0,允许中断申请进入优先级裁决器, 为 1,不允许进入,中断申请被IMR屏蔽。
总线
D0 ~ D7 A0
A5 ~ A9 IOR
CA0 CA1 CA2
VCC
OCW3特殊屏蔽,查询方式设置
1
控制部分
GND
7
8259A的编程结构
8259A内部有9个 可读写的寄存器
8259A中断控制器 处理部分
0 ISR 0 当前 0 中断 0 服务 0 寄存器 0 0 0
IRR 0 中断申请 0 寄存器 0 PR
第8章8259和8253

▲响应内部中断条件: 当前指令执行 响应内部中断条件: 结束 中断响应过程如下: ▲中断响应过程如下:
主程序 中断响应周期 中断服务程序 保护现场 开中断 中断处理 关中断 读中断向量 服务程序 中断返回 断点 , 转入中断 恢复现场 识别中断源 FLAGS , CS , IP 进栈
清 TF , IF 标志
5
中断服务程序
中断服务程序:处理中断事件的程序段。 中断服务程序:处理中断事件的程序段。如除法 错中断服务程序、输入输出中断服务程序等。 错中断服务程序、输入输出中断服务程序等。 中断服务程序与一般的子程序对比: 中断服务程序与一般的子程序对比:子程序的调 用是由程序设定, 用是由程序设定,因此是确定的而中断服务程序 由某个事件引发,它的发生往往是随机的、 由某个事件引发,它的发生往往是随机的、不确 定的。 定的。
可屏蔽中断的响应过程 引脚上接收到一个高电平的中断请求信号, 当CPU在INTR引脚上接收到一个高电平的中断请求信号, 在 引脚上接收到一个高电平的中断请求信号 并且当前的中断允许标志为1时 并且当前的中断允许标志为 时,CPU就会在当前指令 就会在当前指令 执行完以后,开始响应外部的中断请求。具体地说, 执行完以后,开始响应外部的中断请求。具体地说,就 引脚上发两个负脉冲, 是CPU往INTA引脚上发两个负脉冲,外设接到第 个负 往 引脚上发两个负脉冲 外设接到第2个负 脉冲以后,立即往数据线上给CPU送来中断类型码。 送来中断类型码。 脉冲以后,立即往数据线上给 送来中断类型码 CPU在响应外部中断、并进入中断子程序的过程中,要 在响应外部中断、 在响应外部中断 并进入中断子程序的过程中, 依次作下面几件事: 依次作下面几件事: (1) 从数据总线上读取中断类型码,将其存入内部暂存器。 从数据总线上读取中断类型码,将其存入内部暂存器。 (2) 将标志寄存器的值推入堆栈。 将标志寄存器的值推入堆栈。 (3) 把标志寄存器的中断允许标志 和单步标志 清零。 把标志寄存器的中断允许标志IF和单步标志 清零。 和单步标志TF清零
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第8章中断系统与中断控制器8259A
(1)外设的服务请求。如键盘在用户敲了一个键后向CPU提出 中断请求,请求CPU接收该按键的编码; (2)CPU内部事件。如除法错误、运算溢出、设置单步执行方 式等; (3)硬件故障。如电源掉电、内存出错等; (4)软中断。软中断又称为软件中断,是用软件方法产生中断, 即在程序中安排特定的指令INT N(N为中断号),当程序执 行到该类指令时,进入到中断类型号所对应的中断服务
第8章中断系统与中断控制器8259A
3. 中断响应 根据中断请求的中断源的类型不同,中断响应分成以下两 种情况: (1)对非屏蔽中断请求的响应:该请求信号与CPU的NMI 引脚线相连接,如果CPU检测到该请求,CPU执行完当前 指令后就自动执行相应的中断服务程序,CPU不需要发出 中断响应信号。 (2)对可屏蔽中断INTR请求的响应:要检查IF,如IF=1, CPU允许中断,就会在结束当前指令后响应该外设的中断 请求。CPU响应可屏蔽中断时要自动完成下列几步操作:
第8章中断系统与中断控制器8259A
程序。 显然,软中断是人为安排的,而硬件中断源引起的中 断是随机的。在PC系列机中,软中断是调用操作系统功能 的一种方法。 (5)软时钟。为了提供时间标志,早期的计算机在内存中 开辟了几个单元,分别作年、月、日、时、分、秒计数,并 设置了一个定时信号发生器,大约55ms输出一个脉冲,作 为中断请求。
第8章中断系统与中断控制器2.1 CPU响应中断的条件 响应中断的条件
1.中断源如何向CPU表达中断请求 .中断源如何向 表达中断请求 中断源向CPU表达中断请求,一般是通过设置中断请求 触发器来实现的,在需要CPU服务时,将中断请求触发器 置位,其“1”端或“0”端输出的跳变作为中断请求信号。 显然中断源可以随时提出中断请求。
第8章中断系统与中断控制器8259A
4. 中断响应的实际操作 中断响应是实现向中断服务程序的过渡。在中断响应周期, CPU要顺序完成以下操作: (1)发出中断响应信号INTA (Interrupt Acknowledge); (2)关中断,即将IF位清0。以保证在响应一个中断的期间 (不是正在处理中断服务子程序期间)不再响应另一个中断;
第8章中断系统与中断控制器8259A
(3)保护断点和标志寄存器(FR)。断点是相应中断位置的 下一条指令的地址,对8086来说,保护断点就是保存CS 和IP的内容(压入堆栈)。标志寄存器FR中存放着当前执行 的指令的一些重要特征,也需要保存起来,以便中断返回 时继续使用其中的内容,因此,在中断中把标志寄存器 FR也称为程序状态字PSW(Program Status Word)。 (4)查找中断源,转向相应的中断服务程序的入口。 前三个操作由硬件完成,而第四个操作可用硬件,也 可用软件来完成。
第8章中断系统与中断控制器8259A
(4)中断嵌套:在中断处理过程中,发生新的中断请求, CPU应能识别中断源的优先级别,在高级的中断源申请中 断时,能终止低级中断源的服务程序,而转去响应和处理 优先级较高的中断请求,处理结束后再返回较低级的中断 服务程序,这一过程称中断嵌套或多重中断。因此,为了 在较低级的中断服务程序中能及时响应相对较高的中断请 求,必须在进入中断服务程序后尽快地设置开中断指令 STI。
第8章中断系统与中断控制器8259A
8.3 多级中断管理
在实际的应用当中,系统中一般有多个中断源。如果同一 时间有多个中断源向CPU提出中断请求,CPU该如何处理, 这就涉及到多级中断的管理问题,其关键是中断优先级的控 制问题。中断优先级是指每个中断源在接受CPU服务时的优 先等级,对中断优先级的控制要解决以下两个方面的问题, 即中断优先级的排队问题和中断源的识别问题。
第8章中断系统与中断控制器8259A
第8章 中断系统与中断控制器 章 中断系统与中断控制器8259A
8.1 中断概述 8.2 中断处理过程 8.3 多级中断管理 8.4 PC/XT(8088/8086CPU)的中断系统 8.5 8259A可编程中断控制器 习题与思考题
第8章中断系统与中断控制器8259A
第8章中断系统与中断控制器8259A
(4)恢复现场:用弹栈指令把保护现场时入栈寄存器内容 恢复,注意应按先进后出的原则,恢复寄存器原来的内容 值。出栈后,堆栈指针也应恢复到进入中断处理时的位置。 (5)中断返回: 8086CPU必须根据中断结束方式,发中断 结束指令,并在最后用一条中断返回指令IRET。中断返 回指令IRET的作用是将断点的内容重新送入CS和IP寄存 器和标志寄存器,保证CPU从断点开始执行原来的程序。
第8章中断系统与中断控制器8259A
3. 中断技术的优点 (1)并行操作和分时操作。并行操作指CPU和多个外设并行 操作;分时操作指CPU可分时执行多个用户程序和多道作业。 CPU与外部设备进行数据传输的过程如下: • CPU启动外部设备工作后,执行自己的主程序,此时外部设 备也开始工作。当外设需要数据传输时,发出中断请求, CPU停止当前的主程序,转去执行中断服务子程序,中断处 理结束以后,CPU继续执行主程序,外部设备也继续工作。 如此不断重复,直到数据传送完毕。在此操作过程中,对 CPU来说是分时的,即在执行正常程序时,接收并处理外部 设备的中断请求,CPU与外部设备同时运行,并行工作。
第8章中断系统与中断控制器8259A
8.2.2 中断的处理过程
中断处理过程,也叫中断过程。大致可分为:中断请求、 中断判优、中断响应、中断处理和返回四个步骤。 1. 中断请求 外部设备需中断服务时,经接口电路向CPU发出中断请 求信号。如8086/8088系统中高电平有效的INTR信号,该 信号应与8259A的INT相连。CPU在每条指令执行完后检 测外设是否有请求。
第8章中断系统与中断控制器8259A
4. 中断处理和返回 中断处理也叫中断服务,是由中断服务程序完成的。中 断服务程序一般应由以下几部分按顺序组成: (1)保护现场:用压栈指令把中断服务程序中要用到的寄存 器内容压入堆栈,以便返回原来的任务后,CPU能从原来 的现场信息运行原程序; (2)开中断:以便执行中断服务时能响应高一级的中断请求, 实现中断嵌套。用STI指令开放中断屏蔽状态,使IF=1; (3)中断服务程序:执行相应的中断服务处理程序;
第8章中断系统与中断控制器8259A
2.中断请求何种情况下才可能得到CPU响应 .中断请求何种情况下才可能得到 响应 一个中断请求在同时具备下列3个条件时,才有可能得到 CPU响应: (1)系统中无总线请求信号; (2)该中断源未被屏蔽; (3)该中断请求在当前所有中断请求中级别最高。
第8章中断系统与中断控制器8259A
第8章中断系统与中断控制器8259A
8.1.1 中断的概念及其功能
1. 中断 • 所谓中断是一个过程,即CPU在正常执行程序的过程中, 遇到外部或内部的紧急事件需要处理,暂停当前程序的执 行,转去为紧急事件服务,待服务完毕,再返回到暂停处 (断点)继续执行原来的程序。为事件服务的程序称为中断 服务程序或中断处理程序。 2. 中断源 • 中断源是指能发出中断申请的外设或引起中断的原因。目 前,微机中的中断源一般有以下几种:
第8章中断系统与中断控制器8259A
(2)实现实时处理。在实时控制系统中,现场定时或随机 地产生各种参数、信息,要求CPU立即响应。利用中断机 制,计算机就能实时地进行处理,特别是对紧急事件的处 理。 (3)故障处理。计算机运行过程中,如果出现某些故障, 如电源掉电、运算溢出等,计算机可以利用中断系统自行 处理。 (4)基本功能调用:在PC机中,通过软件中断可实现DOS 功能调用和基本BIOS调用。
8.1 中断概述
中断是用以提高计算机工作效率、增强计算机功能的 一项重要技术。最初,它只是作为CPU与外设之间交换数 据的一种方式。后来被用于CPU外部及内部紧急事件的处 理、机器故障的处理、实时控制等多个方面,并产生了用 软件方法进入中断处理的概念(软中断)。如今中断系统已 成为计算机系统的一个极其重要的组成部分。此外,中断 还是基于时间片调度的多任务操作系统的重要技术支柱之 一。
第8章中断系统与中断控制器8259A
4. 中断系统的功能 中断系统是为实现中断而设置的各种硬件与软件,包括 中断控制逻辑及相应管理中断的指令。 一个中断系统应具 有以下功能: (1)中断响应:当中断源有中断请求时,CPU能决定是否 响应该请求; (2)断点保护和中断处理:在中断响应后,CPU能保护断 点,并转去执行相应的中断服务程序; (3)中断优先权排队:当有两个或两个以上中断源同时申 请中断时,应能给出处理的优先顺序,保证先执行优先级 高的中断;
第8章中断系统与中断控制器8259A
① 发两个中断响应信号 INTA ,第一个通知外设准备类型 码,第二个CPU取走类型码。 ② 把程序状态字(PSW)以及程序断点处的CS、IP内容入 栈,以便中断处理完后能正确地返回主程序;同时清除IF 与TF,以禁止其它可屏蔽中断请求; ③ 中断服务程序入口地址段地址送入CS,偏移地址送入IP。
3.CPU何时响应中断 . 何时响应中断 CPU在同时满足下列两个条件时,响应中断: (1)IF=1(对非屏蔽中断,没有此项要求); (2)现行指令执行完。CPU在每一个指令周期的最后一 个总线周期的最后一个时钟周期的开始,对中断请求信号 INTR采样,若有中断请求,则下一步不进入取指令周期, 而进入中断响应周期。
第8章中断系统与中断控制器8259A
例如,在某一 系统中有8个中 断源,系统一般 将8个外设的中 断请求触发器组 合起来,作为一 个端口,并赋以 端口号,如图 8.1所示。
图8.1 软件查询的接口电路
第8章中断系统与中断控制器8259A
把8个外设的中断请求信号相“或”后,作为INTR信号, 这样只要有一个外设有中断请求,就可向CPU发出INTR信 号。当CPU响应中断后,把中断寄存器组成的这个端口的状 态读入CPU,逐位检测并转到相应的服务程序的入口。 假设该接口的请求状态端口地址为20H,则程序查询可采 用两种方法,程序执行步骤如图8.2所示。