第9章 微机中断系统(施庆平)A

更新时间:2024-04-15 06:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第9章 微机中断系统

中断系统是冯〃诺依曼结构计算机的一项重要技术,尤其为解决当前高速运算CPU与低速外部设备信息交换之间的矛盾提供了手段。它也是提高计算机工作效率的一种重要手段。对于那些信号变化是随机的、而且要求快速响应和处理的、实时要求高的应用场合,中断更是一种不可缺少的功能。8086/8088系列有功能很强的中断系统,它可通过8259A可编程中断控制器来实现。

本章首先介绍了中断系统的基本概念:中断、中断系统、中断向量、中断向量表、中断处理过程、中断优先权与中断嵌套,然后对8086CPU的中断系统进行了介绍,最后对8259A可编程中断控制器的原理及其应用作了重点讨论。

9.1 中断系统的基本概念

9.1.1 中断与中断系统功能

1. 中断基本概念

“中断”是一种信号,它告诉微处理机已发生了某种需要特别注意的事件,需要去处理或为其服务。

中断是这样一个过程:当CPU内部或外部出现某种事件(中断源)需要处理时,中止正在执行的程序(断点),转去执行请求中断的那个事件的处理程序(中断服务程序),执行完后,再返回被暂时中止执行的程序(中断返回),从断点处继续执行。

2. 中断系统及其作用、功能

中断系统是实现中断功能的软、硬件的集合。整个中断过程由计算机的中断系统配合用户设计的中断服务程序来实现。

中断系统在微机中可以有以下作用: (1)实现并行处理; (2)实现实时处理; (3)实现故障处理。

微机的中断系统应具有以下功能:

(1)中断响应:当中断源有中断请求时,CPU能决定是否响应该请求。

(2)断点保护和中断处理:在中断响应后,CPU能保护断点,并转去执行相应的中断服务程序。

(3)中断优先权排队:当有两个或两个以上中断源同时申请中断时,应能给出处理的优先顺序,保证先执行优先级高的中断。

(4)中断嵌套:在中断处理过程中,发生新的中断请求,CPU应能识别中断源的优先级别,在高级的中断源申请中断时,能中止低级中断源的服务程序,而转去响应和处理优

第9章 微机中断系统 187

先级较高的中断请求,处理结束后再返回较低级的中断服务程序,这一过程称中断嵌套或多重中断。

3.中断源及其分类

在中断系统中能引起中断的事件称为中断源。中断源可以是外部事件(由CPU的中断请求信号引脚输入),也可以是CPU内部事件(由软件引起)。根据其用途分,一般有:

(1)外部设备中断源,如中断传送接口外设,实时时钟等; (2)硬件故障中断源,如电源掉电;

(3)软件中断源,如运算错、程序错、中断指令等。 根据是否可屏蔽分为:

(1)可屏蔽中断源:可通过指令确定CPU当前是否响应的(外部)中断源; (2)非屏蔽中断源:一旦发生,CPU必须响应的(外部)中断源。

9.1.2中断向量与中断向量表

1. 中断向量

中断处理过程是中断系统按一定的步骤在硬件和软件的结合下完成的。当外部中断源共用一个中断请求引脚向CPU提出中断请求时,首先是中断源的识别问题。

中断源的识别可通过向量中断或中断查询来完成。

中断查询方式是CPU在接到中断请求信号后响应中断,立即执行中断服务程序,在服务程序中首先查明哪个中断源在申请中断,再执行相应的中断服务程序段。该方法能同时实现中断优先权排队(先查询的优先),接口电路简单,但需要查询端口且处理滞后一步,影响了实时性。

向量中断也叫矢量中断,是CPU响应中断时通过中断响应信号选通中断接口,中断接口将中断向量号送至数据总线,CPU通过它获知中断程序入口地址,转去执行该中断服务程序。在向量中断中,每个中断服务程序都有一个确定的入口地址,该地址称为中断向量。

2. 中断向量表

把系统中所有的中断向量集中起来放到存储器的某一个区域内,这个存放中断向量的存储区就叫中断向量表或中断服务程序入口地址表,换言之,每个中断服务程序与该表内的一个中断向量建立一一对应关系,由于中断向量表的每一个向量的序号就是中断号,因此,中断向量表是中断号与该中断号相应的中断服务程序入口地址之间的连接表。PC系列微机的存储器的0000H~03FFH共1024个地址单元作为中断向量存储区,每个中断向量需占用4个字节的地址空间,所以,可容纳256个中断向量,即可处理256个中断服务程序。(中断向量的具体应用见后面的介绍)

9.2中断处理过程

9.2.1 中断处理过程

188

微型机原理及应用

中断处理过程,也叫中断过程,一般包含以下五个步骤:中断请求、中断判优、中断响应、中断处理以及中断返回。

1. 中断请求

由中断源发出中断请求信号,外部由硬件产生,内部由指令产生。 2.中断判优

如果有两个或两个以上中断源同时发出中断请求,要根据中断优先权,找出最高级别的中断源,首先响应其中断请求,处理完后再响应较低一级的中断源。

如果中断源发出中断请求时,CPU正在执行中断服务程序,则应允许优先权高的中断源中断低一级的中断服务程序,实现中断嵌套。

3.中断响应

CPU接到外部可屏蔽中断请求信号后,在满足一定条件下,就进入中断响应周期。 CPU响应外部可屏蔽中断的条件是: (1)接收到有效的中断请求信号;

(2)CPU开放中断(对8086CPU来讲,中断标志IF是“1”); (3)CPU执行完当前指令。

CPU响应中断后,将自动完成以下处理:

(1)关中断(8086CPU清IF)。因为CPU响应中断后,要进行必要的中断处理,在此期间不允许其它中断源来打扰。

(2)断点保护。对于8086CPU来讲,是把断点地址CS和IP及标志寄存器FR自动压入堆栈。

(3)形成中断入口地址。CPU响应中断后,根据判优逻辑提供的中断源标识,获得中断服务程序的入口地址,转向对应的中断服务程序。

8086的中断响应周期占用2个总线周期,操作时序已在7.3.5详细讨论。 4.中断处理

中断处理也叫中断服务,是由中断服务程序完成的。中断服务程序一般应由以下几部分按顺序组成:

(1)保护现场:用入栈指令把中断服务程序中要用到的寄存器内容压入堆栈,以便返回后CPU能正确运行原程序,断点地址是由硬件自动保护的,不用在中断服务程序中保护。

(2)CPU开放中断:以便执行中断服务时能响应高一级的中断请求,实现中断嵌套。需要注意的是:用STI指令开放中断时,是在STI指令的后一条指令执行完后,才真正开放中断。中断过程中,可以多次开放和关闭中断,但一般只在程序的关键部分才关闭中断,其它部分则要开放中断以允许中断嵌套。

(3)中断服务程序:执行输入/输出或事件处理程序。 (4)CPU关中断:为恢复现场做准备;

(5)恢复现场:用出栈指令把保护现场时进栈寄存器内容恢复,注意应按先进后出的

第9章 微机中断系统 189

原则与进栈指令一一对应。出栈后,堆栈指针也应恢复到进入中断处理时的位置。

(6)CPU开放中断:保证返回后仍可响应中断。

(7)中断返回: 8086CPU必须根据中断结束方式,发中断结束指令,并在最后用一条中断返回指令IRET。

5.中断返回

自动返回到断点地址,继续执行被中断的程序。对8086CPU也就是断点地址CS和IP自动出栈。

值得注意的是,有些微处理器,如MC6800保护现场是由硬件自动完成的,而恢复现场,开中断、中断返回用一条返回指令IRET完成。

9.2.2 8086/8088中断系统

1.8088/8086中断类型

8086/8088有一个简单而灵活的中断系统,采用向量型中断结构,可以处理多达256个不同类型的中断请求。CPU的中断源有两类,内部中断和外部中断,外部中断又分为非屏蔽中断NMI和可屏蔽中断INTR。 (1)内部中断

内部中断是由CPU内部事件引起的中断。如执行一条软件中断指令或单步中断标志TF为1时,执行任意一条指令,都可引起中断。因此内部中断也称软件中断,包括溢出中断、除法出错中断、单步中断、断点中断4个由内部硬件设置或自动引发的中断和指令设置的中断(内部软件中断)。

①溢出中断

溢出中断是在执行溢出中断指令INTO时,若溢出标志OF为1,产生一个向量号为4的内部中断。溢出中断为程序员提供一种处理算术运算出现溢出的方法,通常和带符号数的加、减法指令一起使用。

②除法出错中断

除法出错中断是在执行除法指令(无符号数除法指令DIV或带符号数除法指令IDIV指令)时,若除数为0或商大于目的寄存器所能表达的范围(对带符号数,单字节数为-128~+127,双字节数为-32768~+32767,对无符号数,单字节数为0~255,双字节数为0~65535,),产生一个向量号为0的内部中断。0型中断没有相应的中断指令,也不由外部硬件电路引起,故也称“自陷”中断。

③单步中断

单步中断是当单步中断标志TF为1时,在每条指令执行结束后,产生一个向量号为1的内部中断。

在中断过程中,CPU自动把标志寄存器FR压入堆栈,然后把TF和IF清零,以正常方式工作,中断过程结束时,从堆栈中自动弹出标志寄存器FR的内容,TF恢复为1,又恢复单步中断工作方式。

单步中断是为调试程序而设置的。如DEBUG中的跟踪命令,就是将TF置1。

190

微型机原理及应用

8086/8088没有直接对TF置1或清0的命令,可修改存放在堆栈中标志内容,再通过POPF指令改变TF的值。

④断点中断

断点中断是指令中断中的一个特殊的单字节INT3指令中断,执行一个INT3指令,产生一个向量号为3的内部中断。断点中断常用于设置断点,停止正常程序的执行,转去执行某种类型的特殊处理,用于调试程序。

⑤指令中断

指令中断是执行INT n时,产生一个向量号为n的内部中断,为两字节指令,INT3除外。INT n主要用于系统定义或用户自定义的软件中断,如BIOS功能调用和DOS功能调用。

内部中断向量号除指令中断由指令指定外,其余都是预定好的,因此都不需要传送中断向量号,也不需要中断响应周期。 (2)外部中断

外部中断也叫硬件中断,是CPU外部中断请求信号引脚上输入有效的中断请求信号引起的,分为非屏蔽中断NMI和可屏蔽中断INTR二种。

①非屏蔽中断NMI

非屏蔽中断NMI是由NMI引脚上输入有效的中断请求信号引起的一个向量号为2的中断。NMI用来通知CPU发生了致命性事件,如电源掉电、存储器读写错、总线奇偶位错等。NMI是不可用软件屏蔽的,而且是上升沿触发的,中断类型号预定为2,不需要中断响应周期。在IBM PC系列机中,NMI用于处理存储器奇偶校验错、I/O通道奇偶校验错以及8087协处理器异常中断等。

②可屏蔽中断INTR

CPU的INTR引脚通常由8259A PIC的INT输出信号驱动,8259A又与需要请求中断的外设相连。在外设发出中断请求信号时8259A根据优先权和屏蔽状态,决定是否发出INT信号。外设的中断请求信号必须在中断请求信号被接受前保持有效。而CPU对INTR信号是在每条指令的最后一个时钟周期采样的。

接到有效的INTR信号后,CPU是否响应该中断请求,取决于中断允许标志位IF的状态。若IF=1,CPU开放中断,则响应,否则不响应。因此,要响应INTR的中断请求,CPU必须开放中断。

8086/8088设有对中断标志位IF置1或清0的指令,STI指令给IF置1,CPU开中断;CLI指令给IF清0,CPU关中断。

除了CPU开、关中断之外,外设的中断请求是否被传送到CPU还受到中断控制器的控制,如8259A设有中断屏蔽寄存器,可对接于其上的每一个外设的中断请求屏蔽或开放,有选择地允许中断响应。中断屏蔽寄存器的内容可以由CPU通过命令写入。如果出现中断嵌套的情况,只有满足中断嵌套条件才能发出中断请求信号。

2.中断向量表

8086/8088系统中,在内存的最低1KB(00000H-003FFH)地址范围建立了一个中断向

第9章 微机中断系统 191

量表,如图9.1所示,每个中断向量占用4个存储单元,4个单元中的前2个单元存放的是中断服务程序所在段内的偏移量(IP的内容,16位地址),低位字节存放在低地址,高位字节存放在高地址;后2个单元存放的是中断服务程序所在段的段基地址(CS的内容,16位地址),存放方法与前2个单元相同。CPU响应中断时,从中断向量表中查出中断向量地址,再从该地址中取出内容分别装入IP和CS,从而转去执行相应的中断服务程序。

中断向量在表中的位置称为中断向量地址,中断向量地址与中断类型号的关系为: 中断向量地址(首地址)=中断类型号*4

如类型号为20H,则中断向量的存放位置为20H*4=80H,(设中断服务子程序的入口地址为4030:2010,则在0000:0080H~0000:0083H中就应顺序放入10H、20H、30H、40H。当系统响应20H号中断时,会自动查找中断向量,找出对应的中断向量装入CS、IP,即转入该中断服务子程序。

中断向量表中,类型号0~4已由系统定义,不允许用户做修改;类型号5~31是系统备用中断,是为软硬件开发保留的,一般也不允许改为它用;类型号32~255,供用户自由应用。图9.1 中断向量表示意图

从类型号5开始,其中断类型可以是双字节INT n指令中断,也可以是INTR的硬件中断。

专为IBM PC机开发的基本输入输出系统BIOS中断调用占用10H~1AH共11个中断类型号,如INT 10H为屏幕显示调用,INT 13H为磁盘I/O调用,INT 16H为键盘输入调用,INT 1AH为时钟调用等,就是双字节指令中断,这些中断为用户提供直接与I/O设备交换信息又不必了解设备硬件接口的一系列子程序。

DOS中断占用20H~3FH共32个中断类型号(其中A0~BBH和30H~3FH为DOS保留类型号),如DOS

系统功能调用(INT 21H)主要用于对磁盘文件的存储管理。对于系统定义的中断,如BIOS中断调用和DOS中断调用,在系统引导时就自动完成了中断向量表中断向量的装入,也即中断类型号对应中断服务程序入口地址的设置。而对于用户定义的中断调用,除设计好中断服务程序外,还必须把中断服务程序入口地址放置到与中断类型号相应的中断向量表中。

3.CPU响应中断的流程

8086/8088响应中断的流程如图9.2所示。 由图可见8086响应中断可分为四个阶段。 1.中断请求与响应阶段

CPU在每条指令执行的最后一个机器周期采样中断请求信号,在执行完当前指令后,

图9.1 中断向量表示意图

192

微型机原理及应用

进入是否响应中断的判断流程,如果是内部中断或NMI非屏蔽中断,CPU自动形成中断类型号,如果是INTR可屏蔽中断,进入中断响应周期,从数据总线获取中断类型号。

2.中断自动处理阶段

标志寄存器FR入栈,令TEMP=TF,暂存TF的状态, IF和TF清0,CS和IP入栈,根据中断类型号查中断向量表,这些都是硬件自动完成的。

3.中断服务阶段

主要是执行相应的中断服务程序,所做的处理视应用场合而定,如外设的中断服务程序,主要是传递信息,而软件启动的中断服务程序则主要为系统中其它程序服务。

4.中断返回

当执行到IRET指令时,自动弹出IP和CS以及标志寄存器FR,返回中断前的程序位置,执行下一条指令。

图9.2 中断响应流程图

第9章 微机中断系统 193

9.3中断优先权与中断嵌套

9.3.1中断优先级

当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。下面分别介绍:

1.软件查询法

只需有简单的硬件电路,如将A、B、C三台设备的中断请求信号“或”后作为系统INTR,这时,A、B、C三台设备中只要至少有一台设备提出中断请求,都可以向CPU发中断请求。进入中断服务子程序后,再用软件查询的方式分别对不同的设备的服务,查询程序的设计思想同查询式,查询的前后顺序就给出了设备的优先级,框图如图9.3所 示。

2.简单硬件排队法(菊花链法) 以链式中断优先权排队电路为例,将所有的设备连成一条链,靠近CPU的设备优先级最高,越远的设备优先级别越低,则发出中断响应信号,若级别高的设备发出了中断请求,在它接到中断响应信号的同时,封锁其后的较低级设备使得它们的中断请求不能响应,只有等它的中断服务结束以后才开放,允许为低级的设备服务。如图9.4所示。

3.专用硬件方式

采用可编程的中断控制器芯

图9.3软件查询法框图

图9.4 链式中断优先权排队电路

194

微型机原理及应用

片,如Intel8259A。可编程中断控制器是微机中解决中断优先权管理最常用的方法,主要采取优先权编码器、寄存器和比较器解决中断优先权和中断嵌套问题,可以通过编程来设置或改变其工作方式,使用起来方便灵活。在9.4节中将详细计论Intel公司的8259A可编程中断控制器的功能、结构、工作方式及编程。中断控制器的系统连接如图9.5所示,其中IRnw为中断源。

图9.5 中断控制器的系统连接图

9.3.2中断嵌套

有多个中断源,且有不同的优先级,在中断服务程序里,又响应更高级中断,谓之中断嵌套。

主程序STIIR2和IR4中断请求IR2处理程序STIIR1中断请求开中断IR1处理程序STI(EOI)IR2中断清除IR4中断请求(EOI)IRETIR1中断清除IRETIR4处理程序STIIR3中断请求IR3处理程序STI开中断(EOI)IR4中断清除IRET(EOI)IRETIR3中断清除

图9.6 中断嵌套

第9章 微机中断系统 195

分析图9.6中断嵌套可见:

① 主程序中开中断STI后,才可响应中断,中断服务程序开始处开中断STI,才可形成嵌套。

② 中断返回指令IRET前应有中断结束命令EOI 。

③ 在IR2中断处理程序里,由于提前发出EOI命令,它才可响应较低的IR4中断。一般不允许这样作,以免嵌套混乱,使高级中断不能及时得到服务。

9.4 8259A可编程中断控制器

8259A可编程中断控制器(Programmable Interrupt Controller)是用于系统中断管理的专用芯片,在IBM PC系列微机中,都使用了8259A,但从80386开始,8259A都集成在外围控制芯片中。

9.4.1 8259A的功能

8259A有强大的中断管理功能,主要体现在: (1)具有8级优先权,并可通过级联扩展至64级; (2)可通过编程屏蔽或开放接于其上的任一中断源;

(3)在中断响应周期能自动向CPU提供可编程的标识码,如8086的中断类型号; (4)可编程选择各种不同的工作方式。

此外,8259A不仅有各种不同的向量中断工作方式,也能实现查询中断方式。在查询中断方式下,优先权的设置与向量中断方式时一样。在CPU对8259A进行查询时,8259A把状态字送CPU,指出请求服务的最高优先权级别,CPU据此转移到相应的中断服务程序段。

9.4.2 8259A的内部结构与引脚信号

1. 8259A的内部结构

8259A的内部结构框图如图9.7。 8259A由8个功能模块组成: (1)中断请求寄存器(IRR)

IRR用于存放从外设来的中断请求信号IR0~IR7,是一个具有锁存功能的8位寄存器。IRR具有上升沿触发和高电平触发两种触发方式,但无论采用那种触发方式,中断请求信号(IR0~IR7)都必须保持到第一个中断响应周期INTA信号有效,否则会丢失。

(2)中断屏蔽寄存器(IMR)

IMR用于存放对应中断请求信号的屏蔽状态,也是一个8位寄存器,对应位为1,表示屏蔽该中断请求,对应位为0,表示开放该中断请求。IMR可通过屏蔽命令,由编程来设置。

(3)优先级比较器(PR)

PR用于管理、识别各中断源的优先级别。各中断源的优先级别通过编程确定优先权方式来定义和修改,中断过程中自动变化。

196

微型机原理及应用

当有多个中断请求同时出现时,选出其中最高中断级的中断请求。

当出现中断嵌套时,将新的中断请求与ISR中正在服务的中断源的优先权进行比较,若高于ISR中的中断级,则发出INT,中止当前的中断处理程序,转而处理该中断,并在中断响应时,把ISR中相应位置位。反之,不发INT信号。

图9.7 8259A的内部结构框图

(4)中断在服务寄存器(ISR)

ISR用于寄存所有正在被服务的中断源,是一个8位寄存器,对应位为1,表示对应的中断源正在被处理。ISR中的位是在8259A接到第一个中断响应周期的INTA信号后自动置位的,与此同时,相应的IRR位复位。ISR位的复位,在AEOI方式时是自动实现的(在第二个中断响应周期的INTA信号到来后),其他工作方式,是通过中断结束命令EOI实现的。一般情况下,ISR只有1位为1,只有中断嵌套时,有多个ISR位为1,其中优先权为最高的位是正在服务的中断源的对应位。

(5)控制逻辑

控制逻辑根据PR的请求,向CPU发出INT信号,同时接收CPU发来的INTA信号,并将它转换为8259A内部所需的各种控制信号,完成相应处理,如置位相应的ISR位,复位相应的IRR位,清除INT信号;在第二个中断响应周期把中断类型号放到数据总线上。

(6)读/写逻辑

读/写逻辑接收CPU的读/写命令,并把CPU写入的内容存入8259A内部(属读/写逻辑)相应的端口寄存器中,或把端口寄存器(如状态寄存器)的内容送数据总线。

第9章 微机中断系统 197

(7)数据总线缓冲器

数据总线缓冲器用于8259A内部总线和CPU数据总线之间的连接,是一个三态8位双向缓冲器。8259A可通过此数据总线缓冲器直接与数据总线相连(如单片8259A采用非缓冲工作方式时),也可通过外接数据总线缓冲器与数据总线相连(如采用缓冲工作方式时)。

(8)级连缓冲/比较器

该电路用于多片8259A的级联。级联应用时,8259A一片主片最多可接8片从片,扩展到64级中断。连接时,从片的INT信号接主片的IR0~IR7之一,并确定了在主片中的优先级,从片的IR0~IR7接外设的中断请求信号,最终确定了64个优先级。

2. 8259A的引脚信号

8259A是28脚DIP封装的芯片,引脚排列如图9.8。

引脚信号可分为四组。 (1)与CPU总线相连的信号

D7~D0:双向三态数据线,与CPU数据总线直接相连或与外部数据总线缓冲器相连。

RD、WR:读、写命令信号线,与CPU的

读、写信号相连。

CS:片选信号线,通常接CPU高位地址总

线或地址译码器的输出。

INT: 中断请求信号输出端。用于向CPU发出中断请求信号。

INTA INTA

:中断响应输入信号。用于接

图9.8 8259A的引脚图

收CPU发出的中断响应信号。

A0:地址线,通常接CPU低位地址总线,如8088系统中接CPU地址总线A0,8086系统中接CPU地址总线A1.A0=0是偶地址,A0=1是奇地址,该地址线与RD、WR信号配合,可读写8259A内部相应的寄存器。

(2)与外部中断设备相连的信号

IR7~IR0:与外设的中断请求信号相连,通常IR0优先权最高,IR7优先权最低,按序

排列。

(3)级连信号

CAS2~CAS0:级连信号线,主片为输出,从片为输入,与SP/EN配合,实现级连。 SP/EN:主从/允许缓冲线。在缓冲工作方式中,用做输出信号,以控制总线缓冲器

的接收和发送(EN)。在非缓冲工作方式中,用作输入信号,表示该8259A是主片(SP=1)

198

微型机原理及应用

或从片(SP=0)。 (4)其它

VCC:接+5V电源。 GND:地线。 3. 8259A的工作流程 8259A的工作流程如下:

(1)中断源产生中断请求,使8259A 的IRR相应位置1; (2)经IMR屏蔽电路处理后(IRR AND IMR),送PR;

(3)PR检测出最高的中断请求位,并经过嵌套处理,决定是否发出INT信号; (4)若可发INT信号,则控制逻辑将INT信号送CPU的INTR引脚;

(5)若CPU开中断,则在执行完当前指令后,CPU进入中断响应周期,发出两个中断响应信号INTA;

(6)8259A在收到第一个中断响应信号INTA后,控制逻辑使相应的ISR位置1,相应的IRR位清0;

(7)8259A在收到第二个中断响应信号INTA后,控制逻辑将中断类型号送数据总线。若8259A工作在AEOI(自动中断结束)模式,则使相应的ISR位清0。

(8)CPU读取该中断类型号后,查中断向量表,转去执行相应的中断服务程序。 注意,这里的中断结束,是指将8259A的ISR对应位复位,而不是结束用户的中断服务程序,中断服务程序要执行IRET指令后才能结束。

9.4.3 8259A的工作方式

8259A有多种工作方式,可通过编程来设置,以灵活地适用于不同的中断要求。 8259A的工作方式分为三类:中断触发方式,中断优先权管理方式,连接系统总线的方式。其中,中断优先权管理方式是工作方式的核心,包括中断屏蔽方式、设置优先级方式和中断结束方式。

1.中断触发方式 (1)上升沿触发方式

上升沿触发方式,是指中断请求输入端IRi出现由低电平到高电平的跳变时为有效的中断请求信号这样一种中断触发方式。其优点是IRi端只在上升沿申请一次中断,故该端一直可以保持高电平而不会误判为多次中断申请。

该方式由初始化命令字ICW1的D3位置0来设置。 (2)电平触发方式

电平触发方式,是指中断请求输入端IRi出现高电平时,即为有效的中断请求信号这样一种中断触发方式。使用该方式应注意,在CPU响应中断后(ISR相应位置位后),必须

第9章 微机中断系统 199

撤消IRi上的高电平,否则会发生第二次中断请求。

该方式由初始化命令字ICW1的D3位置1来设置。 2.中断屏蔽方式 (1)普通屏蔽方式

按IMR给出的结果,屏蔽或开放该级中断,同时允许高级的中断源中断低级的中断服务程序,不允许同级的中断源或低级的中断源中断目前正在执行的中断服务程序,这样一种工作方式称普通屏蔽方式。

普通屏蔽方式通过写入屏蔽字OCW1来设置,OCW1的内容存放在IMR中,对应位为1,

屏蔽该中断,对应位为0,开放该中断。

(2)特殊屏蔽方式

与普通屏蔽方式不同,特殊屏蔽方式在执行较高级的中断时,开放所有未被屏蔽的中断,包括较低级的中断这样一种工作方式。采用特殊屏蔽方式时,在用屏蔽字OCW1对IMR中的某一位置1时,同时使ISR对应位清0,这样在执行中断服务程序过程中,通过对本级中断源的屏蔽,可开放所有未被屏蔽的中断。

特殊屏蔽方式,通过在中断服务程序中将操作命令字OCW3的D6D5位设置为11进入,要开放所有未被屏蔽的中断,需要接下来将屏蔽字OCW1设置为对本级中断源屏蔽。

若要退出特殊屏蔽方式,则要通过在中断服务程序中将操作命令字OCW3的D6D5位设置为10来实现。

3.优先级设置方式 (1)普通全嵌套方式

该方式是8259A最常用的方式,简称全嵌套方式。8259A初始化后未设置其它优先级方式,就按该方式工作,所以普通全嵌套方式是8259A的缺省工作方式。

普通全嵌套方式下,IR7~IR0优先级由低到高按序排列,且只允许高级的中断源中断低级的中断服务程序。

在该方式下,一定要预置AEOI=0,使中断结束处于正常方式。否则,低级的中断源也可能打断高级的中断服务程序,使中断优先级次序发生错乱,不能实现全嵌套。

(2)特殊全嵌套方式

特殊全嵌套方式与普通全嵌套方式相比,不同点在于执行中断服务程序时不但要响应比本级高的中断源的中断申请,而且要响应同级别的中断源的中断申请。

特殊全嵌套方式一般适用于8259A级连工作时主片采用,主片采用特殊全嵌套工作方式,从片采用普通全嵌套工作方式可实现从片各级的中断嵌套。在该方式下,也要预置AEOI=0。

在特殊全嵌套方式中,对主片的中断结束操作,应检查是否是从片的唯一中断,否则,不能给主片发EOI命令,以便从片能实现嵌套工作,只有从片中断服务全部结束后,才能给主片发EOI命令。

优先级设置方式的普通/特殊全嵌套是通过初始化命令字ICW4的D4位来控制的,D4位

200

微型机原理及应用

为0是普通全嵌套方式,D4位为1是特殊全嵌套方式。 (3)优先权自动循环方式

优先权自动循环方式,在给定初始优先顺序IR7~IR0由低到高按序排列后,某一中断请求得到响应后,其优先权降到最低,比它低一级的中断源优先级最高,其余按序循环。如IR0得到服务,其优先权变成最低,IR1~IR7优先级由高到低按序排列。

使用优先权循环方式,每个中断源有同等的机会得到CPU的服务。

通过把操作命令字OCW2的D7D6位置为10可得到该工作方式。 (4)优先权特殊循环方式

优先权特殊循环方式与优先权自动循环方式相比,不同点在于它可以通过编程指定初始最低优先级中断源,使初始优先级顺序按循环方式重新排列。如指定IR3优先级最低,则IR4优先级最高,初始优先级顺序为IR3、IR2、IR1、IR0、IR7、IR6、IR5、IR4由低到高排列。

通过把操作命令字OCW2的D7D6位置为11可得到该工作方式。同时,OCW2的D2D1D0位指明了最低优先级输入端。

4.中断结束处理方式

当中断服务结束时,必须给8259A的ISR相应位清0,表示该中断源的中断服务已结束,使ISR相应位清0的操作称中断结束处理。

中断结束处理方式有两类:自动结束方式(AEOI)和非自动结束方式(EOI),而非自动结束方式(EOI)又分为一般中断结束方式和特殊中断结束方式。

(1)自动结束方式(AEOI)

当某级中断被CPU响应后,8259A在第二个中断响应周期的INTA信号结束后,自动将ISR中的对应位清0。

该方式是最简单的一种中断结束处理方式,但只适应于有一块8259A且没有中断嵌套的系统,因为ISR中的对应位清0后,所有未被屏蔽的中断源均已开放,同级或低级的中断申请都可被响应。

该方式通过初始化命令字ICW4的D1位置1来设置。 (2)一般的中断结束方式

该方式通过在中断服务程序中设置EOI命令,使ISR中的级别最高的那一位清0。只适用于全嵌套方式,因为该方式中ISR中的级别最高的那一位就是当前正在处理的中断源的对应位。

该方式通过初始化命令字ICW4的D1位清0,同时将OCW2的D7D6D5设置为001来实现。 (3)特殊的中断结束方式

该方式与一般的中断结束方式相比,区别在于发中断结束命令的同时,用软件方法给出结束中断的中断源是那一级的,使ISR的相应位清0 。适用于任何非自动中断结束的情况。

第9章 微机中断系统 201

该方式通过初始化命令字ICW4的D1位清0,同时将OCW2的D7D6D5设置为011来实现,D2D1D0位给出结束中断处理的中断源号。

5.连接系统总线方式 (1)缓冲方式

每片8259A都通过总线驱动器与系统数据总线相连,适用于多片8259A级连的大系统中。

该方式通过初始化命令字ICW4的D3位置1来设置。8259A主片的SP/EN端输出低电平信号,作为总线驱动器的启动信号,接总线驱动器的OE端。从片的SP/EN端接地。

(2)非缓冲方式

每片8259A都直接和数据总线相连,适用于单片或片数不多的8259A组成的系统中。该方式通过初始化命令字ICW4的D3位清0来设置。

在非缓冲方式时,单片8259A的SP/EN端接高电平,级连8259A的主片的SP/EN端接高电平,从片的SP/EN端接低电平。

6.程序查询方式

以上所述,都是8259A的向量工作方式。但8259A不仅可工作在向量中断工作方式,也可以工作在查询中断工作方式。

在查询工作方式下,8259A不发INT信号,CPU也不开放中断,CPU通过不断查询8259A的状态,当查到有中断请求时,就根据它提供的信息转入相应的中断服务程序。

设置查询方式的方法是:CPU关中断(IF=0),写入OCW3查询方式字(OCW3的D2位为1),然后执行一条输入指令,8259A便将一个查询字送到数据总线上。查询字中,D7=1表示有中断请求,D2D1D0表示8259A请求服务的最高优先级是那一位。

如果OCW3的D2D1位=11时,表示既发查询命令,又发读命令,执行输入指令时,首先

读出的是查询字,然后读出的是ISR(或IRR)。

查询方式时,不需执行中断响应周期,不用设置中断向量表,响应速度快,占用空间少。

9.4.4 8259A的级联

微机系统中,可以使用多片8259A级连,使中断优先级从8级扩大到最多64级。级连时,只能有一片8259A为主片,其余都是从片,从片最多8片。

主片8259A的CAS2~CAS0作为输出线,可直接或通过驱动器连接到从片的CAS2~CAS0,每个从片的INT连接到主片的IR7~IR0中的一个,主片的INT端连CPU的INTR端。

8259A缓冲方式和非缓冲方式下其它信号线的连接如9.4.3所述。

在主从式级连系统中主片和从片都必须通过设置初始化命令字进行初始化,通过设置工作方式命令字设置工作方式。

在主从式级连系统中,当从片中任一输入端有中断请求时,经优先权电路比较后,产

202

微型机原理及应用

生INT信号送主片的IR输入端,经主片优先权电路比较后,如允许中断,主片发出INT信号给CPU的INTR引脚,如果CPU响应此中断请求,发出INTA信号,主片接收后,通过CAS2~CAS0输出识别码,与该识别码对应的从片则在第二个中断响应周期把中断类型号送数据总线。如果是主片的其它输入端发出中断请求信号并得到CPU响应,则主片不发出CAS2~CAS0信号,主片在第二个中断响应周期把中断类型号送数据总线。图9.9为1片主片与3片从片级联的情况。

图9.9 1片主片与3片从片级联的情况

9.4.5 8259A的控制字与初始化编程

8259A有两种控制字:初始化字和操作命令字,可对它进行初始化及工作方式设定,8259A的编程也可分为两部分,即初始化编程和工作方式编程。

8259A的初始化字有4个:ICW1~ICW4,用于初始化,操作命令字有3个:OCW1~OCW3,用于设定8259A的工作方式及发出相应的控制命令。

初始化命令字通常是计算机系统启动时由初始化程序设置的,一旦设定,在工作过程中一般不再改变。操作命令字由应用程序设定(如设备的中断服务程序),用于中断处理过程的动态控制,可多次设置。

8259A的初始化流程如图9.10。

1. 8259A初始化与初始化命令字(ICW) 下面对ICW各字的格式和应用进行讨论。

第9章 微机中断系统 203

(1)初始化字ICW1

ICW1控制字的格式如图9.11所示。

图9.11 初始化控制字ICW1的格式

初始化字ICW1,也称芯片控制字,是8259A初始化流程中写入的第一个控制字。ICW1写入后,8259A内部有一初始化过程,故ICW1称初始化字。初始化过程的主要动作有:顺序逻辑复位,准备按ICW2、ICW3、ICW4的确定顺序写入;清除ISR和IMR;指定IR7~IR0由低到高的固定优先级顺序;从片方式地址置为7(对应IR7);设定为普通屏蔽方式;设定为EOI方式;状态读出电路预置为IRR。

A0=0表示ICW1必须写入偶地址端口。

D0:用于控制是否在初始化流程中写入ICW4,D0=1要写ICW4,D0=0不要写ICW4,8086/8088系统中D0必须置1。

D1:用于控制是否在初始化流程中写入ICW3,D1=1不要写ICW3,表示

本系统中仅使用了一片8259A,D0=0要写ICW3,表示

图9.10 8259A的初始化流程图

204

微型机原理及应用

本系统中使用了多片8259A级连。

D2:对8086/8088系统不起作用,对8098单片机系统,用于控制每两个相邻中断处理程序入口地址之间的距离间隔值。

D3:用于控制中断触发方式,D3=0选择上升沿触发方式,D3=1选择电平触发方式。 D4:是特征位,必须为1。

D7~D5:对8086/8088系统不起作用,一般设定为0。 (2)中断向量字ICW2

中断向量字ICW2是8259A初始化流程中必须写入的第二个控制字,用于设置中断类型号,格式如图9.12所示。

图9.12 初始化控制字ICW2的格式

A0=1表示ICW2必须写入奇地址。

D7~D3:由用户根据中断向量在中断向量表中的位置决定。

D2~D0:是中断源挂接的IR端号,如挂接在IR7端为111,挂接在IR6端为110,余类推,此三个编码不由软件确定。例如若CPU写入某8259A的ICW2为40H,则连接到该8259A的IR5端的中断源的中断类型号为45H,中断类型号确定后,中断源挂接的IR端号以及D7--D3的值也就决定了。

如果已知中断向量地址,除以4即可得中断向量号。 (3)级连控制字ICW3

在级连系统中,主片和从片都必须设置ICW3,但两者的格式和含义有区别,格式如图9.13所示。

A0=1表示ICW3必须写入奇地址端口。

D7~D0:表示对应的IR端上有从片(对应位为1)或无从片(对应位为0),如IR5上挂接有从片,D5=1,若其它端无从片,则主片的ICW3=20H。

从片ICW3的格式如下: A0=1表示ICW3被写入奇地址。 D7~D3:不用,常取0。

D2~D0:为从片的识别码,编码规则同ICW2。例如,若某从片的INT输出接到主片的IR5端,则该从片的ICW3=05H。

(4)中断方式字ICW4

第9章 微机中断系统 205

图9.13 初始化控制字ICW3的格式

ICW4主要用于控制初始化后即可确定并且不再改变的8259A的工作方式,格式如图9.14所示

图9.14 初始化控制字ICW4的格式

A0=1表示ICW4必须写入奇地址端口。

D0:系统选择,为1选择8086/8088,为0选择8080/8085。 D1:结束方式选择,为1自动结束(AEOI),为正常结束(EOI)。

206

微型机原理及应用

D2:此位与D3配合使用,表示在缓冲方式下,本片是主片还是从片,为1是主片,为0是从片。

D3:缓冲方式选择,为1选择缓冲方式,为0选择非缓冲方式,当D3=0时,D2位无意义。

D4:嵌套方式选择,为1选择特殊全嵌套方式,为0选择普通全嵌套方式。 D7~D5:特征位,必须为000。 2.工作方式编程与操作命令字OCW

初始化字的ICW1决定了中断触发方式,ICW4决定了中断结束是否AEOI,是否采用缓冲方式,是否采用特殊全嵌套。这些工作方式在8259A初始化后就不能改变,除非重新对8259A进行初始化。其它工作方式,如中断屏蔽、中断结束和优先级循环、查询中断方式等则都可在用户程序中利用操作命令字OCW设置和修改。

在8259A初始化完成后,8259A即可接受中断申请,其工作方式即是初始化时确定的工作方式,也可称为缺省方式,但如不使用缺省方式,可在初始化完成后,写入操作命令字OCW。另外,要屏蔽某些中断源,或读出8259A的状态信息,都可向8259A写入OCW。

OCW的写入没有严格的顺序,OCW除了采用奇偶地址区分外,还采用了命令字本身的D4D3位作为特征位来区分。

(1)屏蔽控制字OCW1

屏蔽控制字OCW1用于在有多个中断源时对某些不希望它中断的中断源进行控制,屏蔽控制字的格式如图9.15所示。

A0=1:表示OCW1必须写入奇地址端口。

图9.15屏蔽控制字OCW1格式

D7~D0:对应位为1屏蔽该级中断,对应位为0开放该级中断。 (2)优先级循环和非自动中断结束方式控制字OCW2

优先级循环和非自动中断结束方式控制字OCW2,用于各中断源优先级循环方式和非自动中断结束方式的控制。OCW2的格式如图9.16所示。

A0=0:表示OCW2必须写入偶地址端口。

D2~D0(L2~L0):中断源编码,在特殊EOI命令中指明清0的ISR位,在优先级特殊循环方式中指明最低优先权IR端号。

第9章 微机中断系统 207

图9.16 优先级循环和非自动中断结束方式控制字OCW2的格式

(3)屏蔽方式和读状态控制字OCW3

屏蔽方式和读状态控制字OCW3用于设置查询中断方式、特殊屏蔽方式、读IRR或ISR控制,OCW3的格式如图9.17所示。

A0=0:表示OCW3必须写入偶地址端口。

D7:无关。

图9.17 屏蔽方式和读状态控制字OCW3的格式

D6D5:特殊屏蔽方式控制位,为11时允许特殊屏蔽方式,为10时复位特殊屏蔽方式。 D4D3:特征位,必须是01。

208

微型机原理及应用

D2:查询中断方式控制位,D2=1,进入查询中断方式,8259A将送出查询字;否则是向量中断方式。

D1:读命令控制位,D1=1,是读命令,否则不是读命令。

D0:读ISR、IRR选择位,为1选择ISR,反之选择IRR。读命令中没有选择IMR的控 制位,但这并不是说CPU不能读出IMR的内容,而是可以直接使用输入指令读出IMR的内容,因为ISR、IRR、查询字都是偶地址,而只有IMR是奇地址,因此读ISR、IRR之前一般要发读命令,而读IMR之前不用发读命令。如果在读偶地址之前,不发读命令,也是可以的,但读出的内容一定是IRR。

实际上,通过D2D1D0三位组合,控制了输入指令读出的是什么内容。D2=1,且D1=0,读出的是查询字;D2=0,且D1=1,读出的是ISR(D0=1)或IRR(D0=0);如果D2=1,且D1=1,则第一条输入指令读出的是查询字,第二条输入指令读出的是ISR(D0=1)或IRR(D0=0)。IMR、ISR、IRR各位的含义在9.4.2中已作介绍。查询字的格式和各位的含义如图9.18所示。

图9.18 查询字的格式

D7:有无中断请求位,为1表示有,为0表示无。 D6~D3:无意义。

D2~D0(W2~W0):当前优先级最高中断源编码。

综上所述,8259A通过奇偶两个地址、配合写入顺序和特征位,可以写入7个控制字,通过OCW3又可以读出1个查询字和2个寄存器状态字ISR和IRR,而IMR可直接读出。

3. 8259A编程举例

例9.1 设8259A应用于8088系统,中断类型号为08H~0FH,它的偶地址为20H,奇地址为21H,设置单片8259A按如下方式工作:电平触发,普通全嵌套,普通EOI,非缓冲工作方式,试编写其初始化程序。

分析:根据8259A应用于8088系统,单片工作,电平触发,可得:ICW1=00011011B;根据中断类型号08H~0FH,ICW2=00001000B;根据普通全嵌套,普通EOI,非缓冲工作方式,ICW4=00000001B。写入此三字,即可完成初始化,程序如下:

MOV AL,1BH ;00011011B,写入ICW1 OUT 20H,AL

MOV AL,08H ;00001000B,写入ICW2

第9章 微机中断系统 209

OUT 21H,AL

MOV AL,01H ;00000001B,写入ICW4 OUT 21H,AL

例9.2 设8259A应用于8086系统,采用主从两片级连工作,主片偶地址20H,奇地址22H(这里的偶地址和奇地址是相对于8259A的片内地址而言的),中断类型号为08H-0FH;从片偶地址0A0H,奇地址0A2H,中断类型号为70H~77H,主片IR3和从片级连,要实现从

片级全嵌套工作,试编写其初始化程序。

分析:根据8259A应用于8086系统,主从式级连工作,主片和从片都必须有初始化程序,要实现从片级全嵌套工作,必须主片采用特殊全嵌套,从片采用普通全嵌套,如其它要求与例9.1相同,主片和从片初始化程序如下:

(1)主片初始化程序

MOV AL,19H ;00011001B,写入ICW1 OUT 20H,AL

MOV AL,08H ;00001000B,写入ICW2 OUT 22H,AL

MOV AL,08H ;00001000B,写入ICW3,在IR3引脚上接有从片 OUT 22H,AL

MOV AL,11H ;00010001B,写入ICW4 OUT 22H,AL (2)从片初始化程序

MOV AL,19H ;00011001B,写入ICW1 OUT 0A0H,AL

MOV AL,70H ;01110000B,写入ICW2 OUT 0A2H,AL

MOV AL,03H ;00000011B,写入ICW3,本从片的识别码为03H OUT 0A2H,AL

MOV AL,01H ;00000001B,写入ICW4 OUT 0A2H,AL

例9.3 在例9.2中,程序要查询从片ISR状态,当全部从片中断得到响应后,才能向主片发中断结束命令,试编写该程序段。

分析:全部从片中断得到响应,从片ISR=0,只要读出从片ISR,若等于0,则结束中断。程序如下:

MOV AL,0BH ;00001011B,写入从片OCW3,要求读出ISR OUT 0A0H,AL

IN AL,0A0H ;读从片ISR OR AL,AL ;判ISR是否全0

210

微型机原理及应用

JNZ ZDRK ;否,转中断出口

MOV AL,63H ;是,01100011B写入主片OCW2,向主片发中断结束命令,主

片ISR的D3位清0

OUT 20H,AL ZDRK: IRET

本章小结

1.“中断”是一种信号,它告诉微处理机已发生了某种需要特别注意的事件,需要去处理或为其服务。

2.中断是这样一个过程:当CPU内部或外部出现某种事件(中断源)需要处理时,中止正在执行的程序(断点),转去执行请求中断的那个事件的处理程序(中断服务程序),执行完后,再返回被暂时中止执行的程序(中断返回),从断点处继续执行。

3.微机的中断系统应具有以下功能:中断响应、断点保护和中断处理、中断优先权排队、中断嵌套。

4.在中断系统中能引起中断的事件称为中断源。中断源可以是外部事件(由CPU的中断请求信号引脚输入),也可以是CPU内部事件(由软件引起)。

5.在向量中断中,每个中断服务程序都有一个确定的入口地址,该地址称为中断向量。 6.把系统中所有的中断向量集中起来放到存储器的某一个区域内,这个存放中断向量的存储区就叫中断向量表或中断服务程序入口地址表

7.中断处理过程,也叫中断过程,一般包含以下五个步骤:中断请求、中断判优、中断响应、中断处理以及中断返回。

8.8086/8088有一个简单而灵活的中断系统,采用向量型中断结构,可以处理多达256个不同类型的中断请求。CPU的中断源有两类,内部中断和外部中断,外部中断又分为非屏蔽中断NMI和可屏蔽中断INTR。

9.当系统中有多个设备提出中断请求时,就有一个该响应谁的问题,也就是一个优先级的问题,解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。

10.有多个中断源,且有不同的优先级,在中断服务程序里,又响应更高级中断,谓之中断嵌套。

11.8259A可编程中断控制器(Programmable Interrupt Controller)是用于系统中断管理的专用芯片,在IBM PC系列微机中,都使用了8259A,但从80386开始,8259A都集成在外围控制芯片中。

12.8259A有强大的中断管理功能,主要体现在: (1)具有8级优先权,并可通过级联扩展至64级; (2)可通过编程屏蔽或开放接于其上的任一中断源;

(3)在中断响应周期能自动向CPU提供可编程的标识码,如8086的中断类型号;

第9章 微机中断系统 211

(4)可编程选择各种不同的工作方式。

13.8259A有多种工作方式,可通过编程来设置,以灵活地适用于不同的中断要求。 8259A的工作方式分为三类:中断触发方式,中断优先权管理方式,连接系统总线的方式。其中,中断优先权管理方式是工作方式的核心,包括中断屏蔽方式、设置优先级方式和中断结束方式。

14.微机系统中,可以使用多片8259A级连,使中断优先级从8级扩大到最多64级。级连时,只能有一片8259A为主片,其余都是从片,从片最多8片。

15.8259A有两种控制字:初始化字和操作命令字,可对它进行初始化及工作方式设定,8259A的编程也可分为两部分,即初始化编程和工作方式编程。

16.8259A的初始化字有4个:ICW1~ICW4,用于初始化,操作命令字有3个:OCW1~OCW3,用于设定8259A的工作方式及发出相应的控制命令。

17.初始化命令字通常是计算机系统启动时由初始化程序设置的,一旦设定,在工作过程中一般不再改变。操作命令字由应用程序设定(如设备的中断服务程序),用于中断处理过程的动态控制,可多次设置。

习题9

9.1 名词解释

(1)内部中断 (2)中断向量 (3)可屏蔽中断 (4)中断程序入口地址 (5)自动EOI(AEOI) (6)现场保护 (7)中断优先级 (8)中断嵌套 9.2 简答题

(1)CPU响应中断的条件是什么?响应中断后,CPU有一个什么样的处理过程? (2)中断向量表的作用是什么?怎么使用? (3)简要说明8259A的内部结构和工作原理。

(4)特殊屏蔽方式和普通屏蔽方式有何异同?各适用于什么场合?

(5)中断向量表的功能是什么?已知中断类型码分别是84H和FAH,它们的中断向量应放在中断向量表的什么位置?

(6)有8个中断源,其中中断类型号分别为 08H------0FH,在RAM的0000H:002CH单元依次存放25H,FFH,20H和E0H。

问:①该中断矢量对应的中断类型号是什么?

②中断服务程序的入口地址是什么?

(7)在采用8259A作为中断控制器的系统中,由IRi输入的外部中断请求,能够获得CPU响应的基本条件是什么?

(8)试说明8259A芯片的可编程序性?8259A芯片的编程有哪两种类型? (9)如果8259A按如下配置则ICW1的值为多少?不需要ICW4,单片以及边缘触发。

212

微型机原理及应用

如要求产生的中断类型码在70H~77H之间,则ICW2的值是多少? (10)如果OCW2等于67H,则允许何种优先级策略?为什么?

(11)如果8259A用在80386DX系统中,用一般的EOI,缓冲模式主片,特殊全嵌套方式,则ICW4的值是什么?

9.3 设8259A应用在8086系统,采用电平触发方式,中断类型号为60H-67H,采用特殊全嵌套方式,中断非自动结束,非缓冲工作方式,端口地址为66H和64H,写出其初始化程序。

9.4 试编写封锁8259A中的IR3、IR4和IR6中断请求的程序,8259A偶地址为1208H 9.5 设8259A级连应用于8086系统,从片的中断请求线接于主片的IR7输入端,主片端口地址为66H和64H,从片端口地址为60H和62H,主片IR0的中断向量号为50H,从片IR0的中断向量号为58H,主片工作方式同9.3,从片工作方式采用缺省工作方式,编写初始化程序,并画出硬件连接电路图。

9.6 假定中断类型号15的中断处理程序的首址为ROUT15,编写主程序中为建立一个中断向量的程序。

9.7 给定SP=0100H,SS=0500H,PSW=0240H,在存储单元中已有内容为(00024)=0060H、(00026)=1000H,在段址0800H及偏移地址00A0H的单元中,有一条中断指令INT9。试问执行INT9指令后,SS、SP、PSW的内容是什么?栈顶的三个字是什么?

9.8 读8259A相关寄存器的内容。

设8259A的端口地址为20H、21H,请读入IRR、ISR、IMR寄存器的内容,并相继保存在数据段2000H开始的内存单元中;若该8259A为主片,请用查询方式,查询哪个从片有中断请求。

9.9 设单级8259A中断控制器在系统的端口地址为4000H和4001H,仅有两个中断源接入IR5和IR7,它们的中断类型号为35H和37H。现要求该中断系统以非自动EOI、非缓冲、完全嵌套方式接受IR3和IR7上电平触发的中断请求。试填充完成下列8259A的初始化程序:

MOV MOV OUT MOV MOV OUT MOV OUT MOV OUT

AL, H ,04000H ,AL

AL, H ,04001H ,AL ,AL ,AL

AL, H AL, H

;设ICW1初始化命令字。 ;选择端口间址寄存器。 ;写ICW1初始化命令字。 ;设ICW2初始化命令字。 ;选择端口间址寄存器。 ;写ICW2初始化命令字。 ;设ICW4初始化命令字。 ;写ICW4初始化命令字。 ;设OCW1初始化命令字。 ;写OCW1初始化命令字。

本文来源:https://www.bwwdw.com/article/lvqp.html

Top