1、第第7 7章章 中断技术中断技术 7.1 7.1 中断技术概述中断技术概述7.2 8086/80887.2 8086/8088中断系统中断系统 7.3 7.3 可编程中断控制器可编程中断控制器82598259A A 7.4 7.4 中断程序设计中断程序设计一、什么是中断一、什么是中断二、中断源及其中断优先权二、中断源及其中断优先权三、三、中断请求与中断屏蔽中断请求与中断屏蔽 四、中断服务程序四、中断服务程序五、五、中断隐操作和中断向量中断隐操作和中断向量六、断点和中断现场六、断点和中断现场七、七、硬件中断和软件中断硬件中断和软件中断7.1 7.1 中断技术概述中断技术概述一、什么是中断?一、什
2、么是中断?在在CPU正常运行程序时,由于内部或外部某个正常运行程序时,由于内部或外部某个非预料事件非预料事件的发的发生,使生,使CPU暂停正在运行的程序,而转去执行暂停正在运行的程序,而转去执行处理引起中断事件的处理引起中断事件的程序程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。,然后再返回被中断了的程序,继续执行。这个过程就是中断。中断服务程序中断服务程序1 1中断服务程序中断服务程序2 2非预料事件非预料事件1 1CPUCPU执行流程执行流程非预料事件非预料事件2 2二、中断源和中断优先权二、中断源和中断优先权 引起中断的因素很多,将发出中断申请的外设或内部原因引起中断的因素
3、很多,将发出中断申请的外设或内部原因,称为中断源。称为中断源。给每个中断源指定一个优先权,称为中断优先权,当多个给每个中断源指定一个优先权,称为中断优先权,当多个中断源同时发出中断请求时,中断源同时发出中断请求时,CPUCPU按照中断优先权的高低顺序按照中断优先权的高低顺序,依次响应。依次响应。三、中断请求与中断屏蔽三、中断请求与中断屏蔽 中断请求中断请求 :当中断源要求当中断源要求CPUCPU为其服务时,必须先向为其服务时,必须先向CPUCPU提提出申请,这是通过发出中断请求信号实现的。出申请,这是通过发出中断请求信号实现的。中断屏蔽中断屏蔽 :系统中的大部分中断源是可屏蔽的,称为可屏系统中
4、的大部分中断源是可屏蔽的,称为可屏蔽中断,而个别的中断请求是不能被屏蔽的,称为非屏蔽中断蔽中断,而个别的中断请求是不能被屏蔽的,称为非屏蔽中断 四、中断服务程序四、中断服务程序 所谓中断服务程序,就是为完成中断源所期望的功能而编所谓中断服务程序,就是为完成中断源所期望的功能而编写的程序。写的程序。五、五、中断隐操作和中断向量中断隐操作和中断向量 CPU响应中断时,首先执行一系列由硬件安排的处理过程,响应中断时,首先执行一系列由硬件安排的处理过程,称为称为中断隐操作中断隐操作。隐操作把。隐操作把CPU引向中断服务程序。引向中断服务程序。中断服务程序的第一个可执行语句所在的地址叫中断服务程序的第一
5、个可执行语句所在的地址叫中断向量中断向量,在在CPU响应硬件中断时,这个中断向量是由中断源硬件提供给响应硬件中断时,这个中断向量是由中断源硬件提供给CPU的。的。六、断点和中断现场六、断点和中断现场n 断点断点:是指是指CPUCPU执行的现行程序被中断时的下一条指令的地址执行的现行程序被中断时的下一条指令的地址,又称断点地址。又称断点地址。n 中断现场中断现场:是指是指CPUCPU转去执行中断服务程序前的运行状态,包转去执行中断服务程序前的运行状态,包括括CPUCPU内部各寄存器、断点地址等。内部各寄存器、断点地址等。1000:1501000:150H H MOV MOV AX,0AX,0AD
6、D ADD AX,DXAX,DXMOV MOV DI,AXDI,AX PUSH PUSH AXAX IRETIRETCPUCPU在执行此指令时,在执行此指令时,某中断源发申请中断;某中断源发申请中断;CPUCPU在执行完该指令后,在执行完该指令后,转去执行中断子程转去执行中断子程.地址地址1000:1501000:150H H为断点为断点七、硬件中断和软件中断七、硬件中断和软件中断v 为了解决为了解决CPUCPU与外设间的速度匹配问题,提高与外设间的速度匹配问题,提高CPU CPU 的工作效率。的工作效率。中断源主要是由外部硬件产生。中断源主要是由外部硬件产生。(称称硬件中断硬件中断或或外部中
7、断外部中断)v 由由CPUCPU内部产生内部产生 (如被零除操作如被零除操作),或者由程序预先安排,即,或者由程序预先安排,即由指令调用中断服务程序。(称由指令调用中断服务程序。(称软件中断软件中断或或内部中断内部中断)1000:150HMOV AH,01INT 21HCMP AL,0Dh PUSH AXIRET用指令调用中断程序用指令调用中断程序7.2 8086/80887.2 8086/8088中断系统中断系统一、一、8086/8088CPU8086/8088CPU的中断分类的中断分类二、二、8086/8088CPU8086/8088CPU的中断优先权的中断优先权三、三、中断类型与中断向量
8、表中断类型与中断向量表 四、四、8086/8088CPU8086/8088CPU响应中断的过程响应中断的过程 五、五、8086/8088CPU8086/8088CPU如何获取中断类型号如何获取中断类型号 按中断源的不同,中断分为按中断源的不同,中断分为内部中断内部中断和和外部中断外部中断。1 1、内部中断(软中断):指、内部中断(软中断):指CPUCPU执行某些特殊操作或执行某些特殊操作或由由INTINT指令引起的中断指令引起的中断 被零除操作或被零除操作或OF=1OF=1时执行时执行INTOINTO指令引起指令引起 使用使用DEBUGDEBUG中的单步或断点设置操作引起中的单步或断点设置操作
9、引起 执行执行INTnINTn 指令引起指令引起2 2、外部中断(硬中断):指外部芯片通过、外部中断(硬中断):指外部芯片通过CPUCPU的的INTRINTR引脚或引脚或NMINMI引脚发出中断申请引起的中断。引脚发出中断申请引起的中断。当当INTRINTR上有高电平信号(上有高电平信号(可屏蔽中断)当当NMINMI上有上升沿信号(上有上升沿信号(非屏蔽中断)一、一、8086/8088CPU8086/8088CPU的中断分类的中断分类 可屏蔽中断可屏蔽中断 由由INTRINTR引脚引起的中断,称引脚引起的中断,称可屏蔽中断可屏蔽中断。CPUCPU是否响应是否响应INTRINTR引脚上的中断请求
10、取决于引脚上的中断请求取决于IFIF标志:标志:IF=1IF=1,CPUCPU响应响应INTRINTR引脚上的中断请求引脚上的中断请求 IF=0IF=0,CPUCPU不响应不响应INTRINTR引脚上的中断请求引脚上的中断请求 即当即当IF=0IF=0时,将时,将INTRINTR引脚上的中断申请屏蔽。引脚上的中断申请屏蔽。非屏蔽中断非屏蔽中断 由由NMINMI引脚引起的中断,称引脚引起的中断,称非屏蔽中断非屏蔽中断。当当NMINMI引脚上产生上升沿信号,引脚上产生上升沿信号,CPUCPU必响应此中断请必响应此中断请 求,即求,即NMINMI引脚上的中断请求引脚上的中断请求不受不受IFIF标志的
11、控制标志的控制,IFIF不能屏蔽不能屏蔽NMINMI引脚上的中断请求。引脚上的中断请求。非屏蔽中断非屏蔽中断 外部中断外部中断 可屏蔽中断可屏蔽中断 内部硬件中断内部硬件中断 内部中断内部中断 内部软件中断:内部软件中断:INT n除法出错除法出错单步跟踪单步跟踪断点中断断点中断溢出中断溢出中断中断源中断源8086/8088CPU8086/8088CPU的中断分类图的中断分类图8086/80888086/8088中断系统结构中断系统结构保留保留(ALT(ALT打印机打印机)中断逻辑中断逻辑INTnINTn指令指令INTOINTO指令指令除法除法错误错误单步单步TF=1TF=1非屏蔽中断请求非屏
12、蔽中断请求IRIR0IRIR6IRIR5IRIR4IRIR3IRIR2IRIR1IRIR782598259A AINTINTCPUCPUINTRNMI080809090A0A0B0B0C0C0D0D0E0E0F0F系统定时器系统定时器键盘键盘保留保留(打印机打印机)软盘软盘串行通信接口串行通信接口保留保留(通信通信)彩色彩色/图形接口图形接口 当有多个中断源同时产生中断申请时,当有多个中断源同时产生中断申请时,CPUCPU先响应先响应优先权最高的中断源,再响应优先级较低的中断源。优先权最高的中断源,再响应优先级较低的中断源。优先级优先级 高高 低低 内部中断内部中断 (除零,除零,INT nI
13、NT n,断点,断点,INTOINTO指令指令 )非屏蔽中断非屏蔽中断 可屏蔽中断可屏蔽中断 低低 内部中断内部中断(单步单步 )二、二、8088CPU8088CPU的中断优先权的中断优先权 8086/8088的每个中断源都被指定了一个编号,称为的每个中断源都被指定了一个编号,称为中断类中断类型号。型号。每一个中断服务程序都有一个唯一确定的入口地址,叫做每一个中断服务程序都有一个唯一确定的入口地址,叫做中断中断向量。向量。把系统中所有的中断向量集中起来,按中断类型号从小到大的把系统中所有的中断向量集中起来,按中断类型号从小到大的顺序放到存储器的某一个区域内,这个存放中断向量的存储区叫顺序放到存
14、储器的某一个区域内,这个存放中断向量的存储区叫中断向量表中断向量表。8086/8088CPU以存储器的以存储器的00000H0003FH共共1024个单元作为中断向量存储区,由于每个中断向量占用个单元作为中断向量存储区,由于每个中断向量占用4个存个存储单元(储单元(CS的内容占两个单元,的内容占两个单元,IP的内容占两个单元),故这个的内容占两个单元),故这个向量表中可存放向量表中可存放256个中断类型的中断向量(即个中断类型的中断向量(即8086/8088CPU的中断系统最多能处理的中断系统最多能处理256个中断源)个中断源)中断类型号所对应的中断向量在中断向量表中的地址等于:中断类型号所对
15、应的中断向量在中断向量表中的地址等于:中断类型号中断类型号4三、中断类型与中断向量表三、中断类型与中断向量表 当中断源产生中断申请后,不论是内中断、非屏蔽中断,当中断源产生中断申请后,不论是内中断、非屏蔽中断,还是可屏蔽中断,只要满足响应条件,还是可屏蔽中断,只要满足响应条件,在执行完当前指令后在执行完当前指令后,CPUCPU内部硬件会自动完成下列响应中断的过程:内部硬件会自动完成下列响应中断的过程:四、四、8088CPU8088CPU响应中断的过程响应中断的过程 取中断类型号取中断类型号N N 当前当前PSWPSW的内容入栈的内容入栈 清清IFIF、TFTF标志为标志为0 0 当前当前CSC
16、S的内容入栈的内容入栈 当前当前IPIP的内容入栈的内容入栈 取内存单元取内存单元(0:(0:N N4)4)字字内容送内容送IPIP 取内存单元取内存单元(0:N(0:N 4+2)4+2)字内容送字内容送CSCS保存现场保存现场取中断子程取中断子程入口地址入口地址 当前指令执行完的含义当前指令执行完的含义 CPU正在执行一条指令,执行完本条指令,响正在执行一条指令,执行完本条指令,响应中断;应中断;对于带重复前缀的串指令(如对于带重复前缀的串指令(如REP MOVSB),),执行一次重复和串指令即可响应中断;执行一次重复和串指令即可响应中断;对对MOV和和POP指令,处理对象为段寄存器,以指令
17、,处理对象为段寄存器,以及及STI和和IRET指令执行完本条指令后,再执行一条指令执行完本条指令后,再执行一条指令才响应中断。指令才响应中断。五、五、8086CPU8086CPU如何获取中断类型号?如何获取中断类型号?不同的中断源,不同的中断源,80868086CPUCPU获取中断类型号的方法不同获取中断类型号的方法不同。CPU 执执行行除除零零或或 OF 为为 1 执执行行 INTO 指指令令 除除零零 固固定定类类型型号号 00H OF 为为 1 执执行行 INTO 指指令令 固固定定类类型型号号 04H使使用用 DEBUG 下下的的单单步步和和断断点点操操作作 单单步步 固固定定类类型型
18、号号 01H 断断点点 固固定定类类型型号号 03H内内中中断断执执行行中中断断调调用用指指令令 INT N 由由指指令令中中给给出出 指指令令中中指指定定类类型型号号 N非非屏屏蔽蔽中中断断 引引脚脚 NMI 上上有有中中断断申申请请信信号号(上上升升沿沿信信号号)非非屏屏蔽蔽中中断断 固固定定类类型型号号 02H外外中中断断可可屏屏蔽蔽中中断断(参参看看中中断断响响应应时时序序图图)当当 IF=1,引引脚脚 INTR 上上有有中中断断申申请请信信号号(高高电电平平信信号号)CPU 按按中中断断响响应应周周期期时时序序,从从数数据据总总线线上上获获取取中中断断类类型型号号 可可屏屏蔽蔽中中断
19、断 外外部部接接口口送送上上类类型型号号T1T2 T3 T4第第 一一 个中断个中断响应周期响应周期T1 T2 T3 T4第第 二二 个中个中断响应周期断响应周期TITITI三个空闲状态三个空闲状态CLK INTAALEAD7AD0中断类型中断类型 8086 8086中断响应周期时序中断响应周期时序 CPU CPU从引脚从引脚INTAINTA发中断响应信号,接口芯片接收此信号,发中断响应信号,接口芯片接收此信号,把中断类型号准备好;同时把中断类型号准备好;同时ISRISRi i=1,IRR=1,IRRi i=0=0。CPUCPU再从引脚再从引脚INTAINTA发中断响应信号,接口芯片接此信号后
20、,发中断响应信号,接口芯片接此信号后,将中断类型号送至数据总线上将中断类型号送至数据总线上;CPU CPU从数据总线获取中断类型号。从数据总线获取中断类型号。7.3.1 82597.3.1 8259A A的主要特性的主要特性 7.3 7.3 可编程中断控制器可编程中断控制器82598259A A 8259A的改进工艺制造,内部结构和外部引脚与的改进工艺制造,内部结构和外部引脚与8259A完全兼容。完全兼容。单一正单一正5V电源,全静态工作(无需外加时钟)。电源,全静态工作(无需外加时钟)。该芯片集中断源识别、判优、提供中断类型号于一体。该芯片集中断源识别、判优、提供中断类型号于一体。每片每片8
21、2C59A能管理能管理8级中断(含优先级)。级中断(含优先级)。每片每片82C59A可送出可送出8个个8位的中断类型号(自动中断向位的中断类型号(自动中断向量转移功能)。量转移功能)。能用软件屏蔽中断请求输入,通过编程可选择多种不同能用软件屏蔽中断请求输入,通过编程可选择多种不同的工作方式,以适应各种系统的要求。的工作方式,以适应各种系统的要求。通过通过82C59A级联,在不增加外部电路的情况下,最多级联,在不增加外部电路的情况下,最多可用可用9片片82C59A级连管理级连管理64级中断。级中断。7.3.2 82597.3.2 8259A A的内部结构的内部结构SP/ENCA0CA1CA2IO
22、RIOW总线总线D0D7数数 据据 线线D0D7INTAINTRA0片片选选译译码码A5A9CSA0RD INTAWRINT 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片连接关系主从片连接关系 ICW4 方式控制方式控制0111A01 0 0 1 0 1 0 0OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级设置、发优先级设置、发EOI 0 1 OCW3特殊屏蔽特殊屏蔽,查询方式设置查询方式设置处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器V
23、CCGND1 10 00 0A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断中断申请申请寄存器寄存器000 0 0 0 0 0 7.3.3 7.3.3 82C59A82C59A外部特性(引脚功能)外部特性(引脚功能)电子钟时间基准电子钟时间基准键键 盘盘保保 留留串串 口口2 硬硬 盘盘软软 盘盘打印机打印机IOWA0CS8259A总线总线A0数数 据据 线线 IORRDWR片片选选译译码码IR0IR1IR2IR3IR4IR5IR6IR7A5A9D0D7D0D7VccSP/ENCA0CA1CA2GND+5V203FH用于多片用于多片8259A级连情况级连情况INTAINT INT
24、A INTR串串 口口1 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器IRR中断申请中断申请寄存器寄存器000 0 0 0 0 0 中断屏蔽寄存器中断屏蔽寄存器 IMROCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A8259A中断控制器中断控制器7.3.4 8259A的控制字的控制字82598259A A的编程结构的编程结构内部有内部有9 9个
25、个可读写的寄存器可读写的寄存器:4个初始化命令寄存器个初始化命令寄存器:ICW1、ICW2 ICW3、ICW4 3个操作命令寄存器个操作命令寄存器 OCW1(IMR)OCW2、OCW3当前中断服务寄存器当前中断服务寄存器 ISR中断申请寄存器中断申请寄存器 IRR(1)初始化命令字初始化命令字(ICW1-ICW4)书上书上147页页 它它决定决定8259A8259A的工作方式的工作方式,通常是在计算机系统启动时在初始通常是在计算机系统启动时在初始程序设置,一旦设定,一般在系统工作过程不再改变。程序设置,一旦设定,一般在系统工作过程不再改变。例:开机后,例:开机后,BIOS将将8259A初始化为
26、:初始化为:IR0IR7中断申请信号为上升沿触发方式;中断申请信号为上升沿触发方式;IR0IR7对应的中断类型号分别为对应的中断类型号分别为08H0FH;优先级优先级IR0最高最高,IR7最低;最低;(2)操作命令字操作命令字(OCW1,OCW2,OCW3)在应用程序中设定,动态地控制在应用程序中设定,动态地控制CPUCPU处理中断的过程处理中断的过程(3)ISR和和IRR存放当前存放当前8259A的状态的状态 通过读取通过读取 ISR 和和 IRR 的内容,可了解当前的内容,可了解当前8259A工作情况工作情况7.3.5 8259A的工作方式的工作方式 1、中断屏蔽方式、中断屏蔽方式2、中断
27、嵌套方式、中断嵌套方式3、设置优先级的方式、设置优先级的方式 4、中断结束方式、中断结束方式 5、查询中断方式、查询中断方式 6、读取状态方式、读取状态方式 7、级联方式、级联方式 8、连接系统总线的方式、连接系统总线的方式 见书上见书上151页页分两步分两步:(1)(1)处理外设中断申请,决定是否向处理外设中断申请,决定是否向CPUCPU发中断申请信号。发中断申请信号。(2)(2)若发中断申请信号,且若发中断申请信号,且CPUCPU响应,则在响应,则在CPUCPU中断响应周期中断响应周期送出中断类型号。送出中断类型号。8259A8259A的工作过程的工作过程IORIOW总线总线数数 据据 线
28、线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器000 0 0 0 0 0 1 0 0 1 0 1 0 0INTR11(1)(1)处理
29、外设中断申请,决定是否向处理外设中断申请,决定是否向CPUCPU发中断申请信号发中断申请信号.中断申请寄存器中断申请寄存器IRR IRR 锁存外部的中断申请。若锁存外部的中断申请。若IR0IR0IR7IR7引脚引脚上有中断申请,则将上有中断申请,则将IRRIRR相应位置相应位置1 1;IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR
30、0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR 中断屏蔽寄存器中断屏蔽寄存器IMRIMR决定决定IRRIRR中的中断申请是否进入优先级裁中的中断申请是否进入优先级裁决器决器PRPR。IMRIMR对应位对应位为为0 0,允许允许中断申请进入优先级裁决器;中断申请进入优先级裁决器;IMRIMR对应位对应位为为 1 1,不允许不允许进入,中断申请被进
31、入,中断申请被IMRIMR屏蔽。屏蔽。IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0
32、 0 0 1 1 0 0 1 0 1 0 0INTR 当前中断服务寄存器当前中断服务寄存器ISRISR记录记录CPUCPU正在响应的中断。正在响应的中断。ISRISR中的某位中的某位为为1 1,表示,表示CPUCPU正在响应正在响应此级中断,即正在执行此此级中断,即正在执行此中断源的中断子程;中断源的中断子程;ISRISR中的某位中的某位为为0 0,表示,表示CPUCPU没有或已响应完没有或已响应完此级中断,即不在此级中断,即不在执行此中断源的中断子程。执行此中断源的中断子程。IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D
33、7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR 优先级裁决器优先级裁决器PRPR据新进入的中断申请和据新进入的中断申请和 ISRISR的内容的内容,决
34、定是否发决定是否发中断申请信号。中断申请信号。如果进入的中断申请比如果进入的中断申请比ISRISR中记录的中记录的中断优先级高中断优先级高,则通过,则通过 8259A8259A的的INT INT 引引 脚向脚向 CPUCPU发出中断请求信号;发出中断请求信号;如果进入的中断申请不比如果进入的中断申请不比ISRISR中记录的中断优先级高中记录的中断优先级高,同级或低级同级或低级,则不向则不向 CPUCPU发中断请求信号。发中断请求信号。(2)(2)若发中断申请信号,且若发中断申请信号,且CPUCPU响应,则在响应,则在CPUCPU中断响应周期送中断响应周期送出中断类型号出中断类型号.CPUCPU
35、接收到接收到 INTRINTR上的中断申请信号后:上的中断申请信号后:如果如果 IF IF 标志为标志为0 0,则,则CPUCPU不响应此中断申请信号不响应此中断申请信号,即中断申即中断申 请被请被IFIF屏蔽。屏蔽。如果如果 IF IF 标志为标志为1,1,则处理完当前的指令后则处理完当前的指令后,进入中断响应进入中断响应 周期周期:n 通过通过 INTA INTA 引脚发出两个负脉冲信号,引脚发出两个负脉冲信号,n 从数据总线上获取中断类型号,从数据总线上获取中断类型号,n 进入中断响应的过程。进入中断响应的过程。T1T2 T3 T4第第 一一 个中断个中断响应周期响应周期T1 T2 T3
36、 T4第第 二二 个中个中断响应周期断响应周期TITITI三个空闲状态三个空闲状态CLK INTAALEAD7AD0中断类型中断类型 8086 8086中断响应周期时序中断响应周期时序001 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EO
37、I OCW3 特殊屏蔽设置特殊屏蔽设置1 0 0 1 0 1 0 0IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RDWR INTAINTD0D7INTR018259A8259A在接收到第一个在接收到第一个INTAINTA中断响应信号后:中断响应信号后:将将 ISR ISR 中相应位置中相应位置1 1,表示,表示 CPU CPU 响应此级中断,执行此中断源的中断子程。响应此级中断,执行此中断源的中断子程。把把 IRR IRR 中对应的位清中对应的位清0 0,清除,清除IRRIRR中锁存的中断申请信号。中锁存的中断申请信号。001 0 0 0 0 0 I
38、SR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置1 0 0 1 0 1 0 0IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RDWR INTAINTD0D7INTR018259A在接
39、收到第二个在接收到第二个INTA中断响应信号后:中断响应信号后:通过数据线,将被响应申请的中断类型号送给通过数据线,将被响应申请的中断类型号送给CPUCPU。类型号由。类型号由ICW2提提供,在初始化供,在初始化8259A8259A时已设定好。时已设定好。CPUCPU获得中断类型号后,进入获得中断类型号后,进入CPUCPU响应中断的过程响应中断的过程,执行中断子程,处理执行中断子程,处理中断源申请的功能。中断源申请的功能。1.82591.8259A A的初始化编程的初始化编程2 2.8259A.8259A的工作方式编程的工作方式编程(1)(1)设置中断屏蔽字设置中断屏蔽字(2)(2)发中断结束
40、命令发中断结束命令EOIEOI7.3.6 82597.3.6 8259A A的编程的编程 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制处理部分处理部分控制部分控制部分000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器PR优先级优先级裁决器裁决器IRR中断申请中断申请寄存器寄存器000 0 0 0 0 0 中断屏蔽寄存器中断屏蔽寄存器 IMROCW2 1 0 0 1 0 1 0 0 0 0 0 1 OCW3OCW18259A8259A中断控制器中断控制器 8259A 8259A内部有内部有
41、9 9个可读写的寄存器个可读写的寄存器:4 4个初始化命令寄存器个初始化命令寄存器:ICW1ICW1、ICW2 ICW2、ICW3ICW3、ICW4 ICW4 3 3个操作命令寄存器个操作命令寄存器 OCW1OCW1(IMRIMR)OCW2OCW2、OCW3OCW3 当前中断服务寄存器当前中断服务寄存器 ISRISR 中断申请寄存器中断申请寄存器 IRRIRR8259A8259A有两个有两个I/OI/O端口地址端口地址A0=0 A0=0 偶地址端口偶地址端口A0=1 A0=1 奇地址端口奇地址端口对对9 9个寄存器的读写均通过这两个端口实现个寄存器的读写均通过这两个端口实现:根据根据写入数据的
42、特征位写入数据的特征位写入的先后顺序写入的先后顺序区分是对哪个寄存器进行操作区分是对哪个寄存器进行操作1.82591.8259A A的初始化编程:的初始化编程:初始化编程是由初始化编程是由CPU向向8259A写入写入24个字节的初始化命令字个字节的初始化命令字ICW。8259A的初始化的初始化顺序如图:顺序如图:ICW1ICW2ICW3ICW4单片使用?单片使用?要要ICW4?准备好接收中断准备好接收中断YN(SNGL=0)Y(IC4=1)N例:设某例:设某8088系统中使用一片系统中使用一片8259A,其端口地址为,其端口地址为210H、211H,若按系统要求,中断请求为电平触发,其,若按系
43、统要求,中断请求为电平触发,其8个中断源个中断源的类型号为的类型号为60H67H,试编写初始化程序段。,试编写初始化程序段。解:按要求确定初始化命令字:解:按要求确定初始化命令字:ICW1:00011011BICW2:01100000B(只有前(只有前5位有效)位有效)ICW4:00000001B 初始化程序段:初始化程序段:MOV DX,210H ;DX指向偶地址端口指向偶地址端口MOV AL,1BH ;写;写ICW1OUT DX,ALMOV DX,211H ;DX指向奇地址端口指向奇地址端口MOV AL,60H ;写;写ICW2OUT DX,AL2 2.8259A.8259A的工作方式编程
44、的工作方式编程(1)(1)设置中断屏蔽字,设置中断屏蔽字,通过中断屏蔽寄存器通过中断屏蔽寄存器IMRIMR的读写:的读写:对应位对应位为为0 0,允许允许该级中断申请进入该级中断申请进入对应位对应位为为1 1,禁止禁止该级中断申请进入该级中断申请进入IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR
45、6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR1 1)禁止)禁止 IR4 IR4 的中断申请的中断申请 IN AL,21H ;IN AL,21H ;读入原读入原IMRIMR的内容的内容 OROR AL,000 AL,0001 1 0000B ;0000B ;D4=1,D4=1,禁止禁止IR4IR4的中断申请的中断申请 OUT 21H,AL ;OUT 21H,AL ;写入写入IMR
46、IMR2 2)允许)允许 IR2 IR2 的中断申请的中断申请 IN AL,21H ;IN AL,21H ;读入原读入原IMRIMR的内容的内容 ANDAND AL,1111 1 AL,1111 10 011B ;11B ;D2=0,D2=0,允许允许IR2IR2的中断申请的中断申请 OUT 21H,AL ;OUT 21H,AL ;写入写入IMRIMR例:例:已知已知IBM PC/XTIBM PC/XT系统中,系统中,8259A8259A的奇地址端口地址为的奇地址端口地址为2121H H设置完成后的结果如图设置完成后的结果如图IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译
47、码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 0 0 0INTR(2)(2)发中断结束命令发中断结束命令 EOIEOI
48、由由 8259A 8259A 的工作过程可知的工作过程可知:v ISR ISR中的内容是优先级裁决器进行裁决的重要依据,中的内容是优先级裁决器进行裁决的重要依据,CPUCPU响应某级中断后,响应某级中断后,8259A8259A自动将自动将ISRISR的对应位置的对应位置1 1,如,如果果CPUCPU已执行完中断子程,而已执行完中断子程,而ISRISR中的对应位仍为中的对应位仍为1,8259A1,8259A的优先级裁决器仍会据的优先级裁决器仍会据ISRISR的内容做裁决,从而会屏蔽同的内容做裁决,从而会屏蔽同级或低级的中断申请。级或低级的中断申请。v 在中断响应后,对在中断响应后,对 ISRIS
49、R中相应位的清中相应位的清0 0很重要,很重要,它是它是8259A8259A认为中断结束的标志。认为中断结束的标志。IORIOW总线总线数数 据据 线线D0D7INTAA0片片选选译译码码A5A9CSA0RD INTAWRINTD0D7 ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片关系主从片关系 ICW4 方式控制方式控制101 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1 中断屏蔽寄存器中断屏蔽寄存器 IMR 0 0 OCW2 优先级、发优先级、发EOI OCW3 特殊屏蔽设置特殊屏蔽设
50、置PR优先级优先级裁决器裁决器IRR中断中断申请申请寄存器寄存器100 0 0 0 0 1 1 0 0 1 0 1 0 0INTR EOI00100000特征位,表示对特征位,表示对OCW2操作操作20H清清ISR ISR 内容的方法有两种:内容的方法有两种:一、初始化一、初始化8259A时,设置时,设置8259A工作方式为自动清工作方式为自动清0方式,则在方式,则在CPU响应中断后,硬件自动将响应中断后,硬件自动将ISR的对应位的对应位清清0。二、初始化二、初始化8259A时,设置时,设置8259A工作方式为非自动清工作方式为非自动清0方式,需在中断子程中,通过软件方式清方式,需在中断子程中