《微型计算机原理》课件chapter7 中断_第1页
《微型计算机原理》课件chapter7 中断_第2页
《微型计算机原理》课件chapter7 中断_第3页
《微型计算机原理》课件chapter7 中断_第4页
《微型计算机原理》课件chapter7 中断_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024年3月19日第1页本章主要内容中断系统概述13可编程中断控制器8259A28086处理器的中断系统2024年3月19日第2页在CPU执行程序的过程中,由于某种事件发生,强迫CPU暂停正在执行的程序而转向对该发生的事件进行处理,当对事件的处理结束后又能回到原中止程序,接着中止前的状态,继续执行原来的程序,这一过程称为中断。§7.1中断系统概述7.1.1中断的基本概念什么是中断?2024年3月19日第3页7.1.1中断的基本概念什么是中断?正在看书电话铃响接电话继续看书执行程序事件发生事件处理继续执行程序中断处理中断请求及响应实际场景计算机中断返回§7.1中断系统概述2024年3月19日第4页

1、实现并行处理:实现CPU与多个外设同时工作,提高CPU利用率。

2、实现实时处理:当外设提出中断请求,CPU能及时响应。

3、实现故障处理:当系统发生故障时可以利用中断功能及时自行处理。§7.1中断系统概述7.1.1中断的基本概念中断有什么用?2024年3月19日第5页1、中断源引起CPU中断的事件——中断源。例如:外设——请求输入输出数据,报告故障等。事件——掉电、硬件故障、软件错误、非法操作、定时时间到等。中断源分为:内部中断源、外部中断源内部中断:CPU内部执行程序时自身产生的中断。外部中断:CPU以外的设备、部件产生的中断。

8086/8088的外部中断信号:INTR、NMI§7.1中断系统概述2024年3月19日第6页NMI:非屏蔽中断INTR:可屏蔽中断不受标志位IF的影响,只要CPU在正常地执行程序时,它就一定会响应NMI的请求。是上升沿有效。外部中断提出中断申请后,CPU能否响应还要受到标志位IF的控制。IF=1时,CPU在一条指令执行完后对中断请求作出响应;IF=0时则不响应。高电平有效。NMI和INTR有什么区别§7.1中断系统概述2024年3月19日第7页②

中断响应①中断请求③断点保护④中断源识别⑤

中断服务⑥

断点恢复⑦

中断返回(以外部中断为例介绍)

外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚;中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。在8086/8088系统中,外设的中断要经过

8259A可编程中断控制器(PIC)的排队判优后

向CPU发出。7.1.2

中断响应的过程§7.1中断系统概述2024年3月19日第8页②中断响应①中断请求③断点保护④中断源识别⑤

中断服务⑥

断点恢复⑦

中断返回CPU响应可屏蔽中断的条件:1、一条指令执行结束。2、CPU处于开中断。IF=1时。3、没有发生RESET、HOLD、NMI。4、STI、IRET指令执行完、还需再执行一条指令才能响应INTR请求§7.1中断系统概述2024年3月19日第9页②

中断响应①中断请求③断点保护④中断源识别⑤

中断服务⑥

断点恢复⑦

中断返回断点保护过程由CPU硬件自动完成,其内容包括:标志寄存器压入堆栈进行保护;关中断;将CS和IP的内容压入堆栈加以保护。在中断服务程序中可由软件保护硬件没保护的寄存器的内容。§7.1中断系统概述2024年3月19日第10页②

中断响应①中断请求③断点保护④中断源识别⑤

中断服务⑥

断点恢复⑦

中断返回软件查询。将中断信号从数据总线读入,用程序进行判别。中断矢量法。将中断源进行编码(中断矢量、中断类型号),CPU根据编码确定中断源。此编码由中断源向CPU提供。(8086/8088即采用此种方法)§7.1中断系统概述2024年3月19日第11页a.软件查询中断源所用的硬件接口b.软件查询中断源流程软件查询法§7.1中断系统概述2024年3月19日第12页中断向量码CLKALEINTAD0—D7第一个中断响应总线周期第二个中断响应总线周期T1T2T3T4T1T2T3T4INTR中断响应时序中断矢量法判别中断源§7.1中断系统概述2024年3月19日第13页②中断响应①中断请求③断点保护④中断源识别⑤中断服务⑥断点恢复⑦中断返回2.中断响应的一般过程以外部中断为例介绍中断服务子程序特点为”远”过程(类型为FAR)要用IRET指令返回中断服务子程序要做的工作保护现场(PUSHreg’s)

开中断(STI)

进行中断处理

恢复现场(POPreg’s)

中断返回(IRET)

中断服务程序入口现场保护对中断源服务现场恢复开中断STI中断返回IRET开中断关中断2024年3月19日第14页优先级控制要处理的两种情况:对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断——即允许中断嵌套。7.1.3

中断优先级及中断嵌套§7.1中断系统概述2024年3月19日第15页(2)解决方法:软件查询方式:外围电路简单,优先级由查询程序决定,响应中断服务慢。硬件排队方式:由外围硬件电路决定优先级高低。专用硬件方式:采用专门的中断管理硬件电路,如可编程中断控制器8259,功能强大,使用灵活,可编程决定其工作方式。7.1.3

中断优先级及中断嵌套§7.1中断系统概述2024年3月19日第16页当CPU响应中断并为该中断服务时,可以被优先级更高的中断源中断,实现中断的嵌套。在中断处理程序中开中断;设置足够大的堆栈;对堆栈进行正确的操作。中断的嵌套○INT4○INT1INT4中断服务INT1中断服务中断嵌套§7.1中断系统概述2024年3月19日第17页

8086(8088)可以处理256个不同方式的中断,每个中断对应一个中断向量码,CPU根据向量码的不同来识别不同的中断源。其中,内部中断源主要有5种,包括CPU硬件产生的中断(中断类型号为0、1、3和4),软件中断INTn;外部中断源有2种:NMI和INTR与中断有关的控制线为:NMI、INTR、INTA§7.28086的中断系统2024年3月19日第18页内部中断除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生(当前指令需执行完)断点中断:类型号3,这是一个软件中断,即INT3指令。溢出中断:类型号4,这是一个软件中断,即INTO指令。软件中断:即INTn指令,类型号n(0-255)。外部中断非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。内部中断NMIINTR单步中断高低7.2.1

8086CPU的中断资源§7.28086的中断系统2024年3月19日第19页NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259APIC8086/8088CPU内部逻辑断点中断可屏蔽中断请求n43012可屏蔽中断请求&≥18087中断RAM错I/O通道错NMI§7.28086的中断系统2024年3月19日第20页8086/8088CPU的中断响应过程内部中断响应过程外部中断响应过程§7.28086的中断系统2024年3月19日第21页8086/8088CPU的中断响应过程内部中断响应过程无INTA#周期中断类型码固定或由指令给出响应过程主要步骤: ①PUSHFLAG ②IF=0

③PUSHCS

④PUSH

IP

⑤取中断向量送入IP和CS§7.28086的中断系统2024年3月19日第22页外部中断响应过程非屏蔽中断,与内部中断响应过程类似可屏蔽中断

①INTA#(1),PIC进行优先级排队判优处理

②INTA#(2),PIC把中断类型码放到DB上,CPU读入

③PUSHFLAG ④IF=0

PUSHCS

⑥PUSH

IP

⑦取中断向量送入IP和CS与内部中断一样§7.28086的中断系统2024年3月19日第23页中断向量码CLKALEINTAD0—D7第一个中断响应总线周期第二个中断响应总线周期T1T2T3T4T1T2T3T4图INTR中断响应时序至8259§7.28086的中断系统2024年3月19日第24页8086(88)的中断响应过程取指令执行当前指令获取中断向量码FLAG压栈IF=0,TF=0CS、IP压栈向量表地址=向量码×4表地址取一字→IP表地址+2取一字→CS执行完否内部中断NMI?INTR?TF=1?IF=1NNNNYNNYYYYY转向中断服务程序入口2024年3月19日第25页

8088在内存开始的1K字节建立了一个中断向量表,在该表中可提供256个中断源中断服务程序的入口地址。无论内部中断还是外部中断,对应每一个中断源都有它相应的中断向量码,中断向量码为一个字节,可对应256个不同的中断源,利用该中断向量表,可将不同的中断源与其相对应的中断服务程序入口联系在一起。CS基地址IP偏移量CS基地址IP偏移量CS基地址IP偏移量……中断向量码0除法错中断向量码1单步中断中断向量码2

NMI00000H00004H00008H0000CH003FFH供用户使用保留0007FH00080H中断向量表的结构7.2.2

中断向量表§7.28086的中断系统2024年3月19日第26页如何获得某一中断源的中断服务程序入口地址?中断向量码×4=中断向量表的地址中断服务程序入口地址偏移量(16位)和段基地址(16位)段基地址CS左移4位+偏移量IPCS基地址IP偏移量CS基地址IP偏移量CS基地址IP偏移量……中断向量码0除法错中断向量码1单步中断中断向量码2

NMI000H004H008H00CH3FFH供用户使用保留07FH080H§7.28086的中断系统2024年3月19日第27页

中断向量表的初始化初始化——将中断服务程序的入口地址放入向量表

例:中断类型码为48H的中断处理子程序的名字为int48h,编写程序段将该中断处理子程序的入口地址放入向量表。CLIMOVAX,0MOVDS,AXMOVSI,48H*4MOVAX,OFFSETint48hMOVWORDPTR[SI],AXMOVAX,SEGint48hMOVWORDPTR[SI+2],AX

STICLIPUSHDSMOVAL,48HMOVAX,SEGint48h

MOVDS,AXMOVDX,OFFSETint48hMOVAH,25HINT21HPOPDS

STI§7.28086的中断系统2024年3月19日第28页8259的特点1.一片8259能管理8级中断,在不增加任何其他电路的情况下,可用9片8259级联,构成64级主从式中断系统。2.8259是可编程的,有多种工作方式,使用灵活。3.根据中断源向x86提供不同中断类型码。§7.3

可编程中断控制器8259A2024年3月19日第29页引脚及内部结构1工作方式2编程(控制字、命令字)3应用举例4§7.3

可编程中断控制器8259A2024年3月19日第30页12345678910111213141516171819202122232425262728地+5VA0D0D1D2D3D4D5D6D7CSIR7WR8259RDSP/ENIR6IR5IR4IR3IR2IR1IR0CAS2CAS1CAS0INTINTA7.3.1.引脚及内部结构D0~D7

双向数据线

与系统总线的数据线相连接。IR0~IR7

中断请求输入端

IR0优先级最高。RD、WR

读、写控制信号

与系统总线的读写控制信号相连。CS

片选信号

在系统中常接地址译码器。INT8259的中断请求输出信号(8259给CPU)INTA

中断响应输入信号(CPU给8259)§7.3

可编程中断控制器8259A2024年3月19日第31页12345678910111213141516171819202122232425262728地+5VA0D0D1D2D3D4D5D6D7CSIR7WR8259RDSP/ENIR6IR5IR4IR3IR2IR1IR0CAS2CAS1CAS0INTINTA7.3.1.引脚及内部结构§7.3

可编程中断控制器8259A2024年3月19日第32页INTCAS0CAS1CAS2IR0IR1IR7SP/EN…INTAINTAINTCAS0CAS1CAS2IR0IR1IR7…SP/ENINTAINTCAS0CAS1CAS2IR0IR1IR7…SP/EN○○○VCC……中断请求输入中断请求输入8259主8259从18259从8

8259级联工作框图§7.3

可编程中断控制器8259A2024年3月19日第33页○级联

缓冲器比较器中断请求寄存器(IRR)IR0…IR7优先级分析器中断服务寄存器(ISR)控制逻辑○○INTAINT中断屏蔽寄存器(IMR)数据总线缓冲器读写

逻辑D7~D0·○○RDWRA0CSCAS0CAS1CAS2SP/EN

8259的内部框图中断请求寄存器(IRR)其内部保存着所有外部中断源IR0~IR7的中断请求状态。任何一个中断源发生请求,其相应位置1;响应后即复位。中断服务寄存器(ISR)用来保存所有正在服务的中断源。中断屏蔽寄存器(IMR)用来保存被屏蔽的所有中断源。若IMR中某一位为1,则表明该位所对应的中断请求不能进入优先级比较电路。§7.3

可编程中断控制器8259A2024年3月19日第34页7.3.2.8259的工作方式中断优先方式与中断嵌套1中断结束方式2连接系统总线的方式3中断屏蔽方式4中断触发方式5级联工作方式62024年3月19日第35页7.3.28259的工作方式

中断优先方式和中断嵌套固定优先级循环优先级普通全嵌套方式特殊全嵌套方式§7.3

可编程中断控制器8259A2024年3月19日第36页7.3.28259的工作方式

中断优先方式和中断嵌套固定优先级所有中断请求IRi的中断优先级固定不变优先级排列顺序可编程改变加电后8259A的默认方式,默认优先级顺序从高到低为IR0~IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级优先级可编程改变§7.3

可编程中断控制器8259A2024年3月19日第37页7.3.28259的工作方式

中断优先方式和中断嵌套固定优先级循环优先级中断源轮流处于最高优先级,即自动中断优先级循环初始优先级顺序可用编程改变,即指定循环优先级某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级

IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前0101000001000000IR4的服务结束以后ISRi§7.3

可编程中断控制器8259A2024年3月19日第38页7.3.28259的工作方式

中断优先方式和中断嵌套固定优先级循环优先级普通全嵌套方式特殊全嵌套方式在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。普通全嵌套方式(默认方式)

一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。特殊全嵌套方式

一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。§7.3

可编程中断控制器8259A2024年3月19日第39页D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁)C.假定IR3发生中断,并获得服务一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。B.特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。A.INTE.从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式与特殊全嵌套方式的区别去CPU2024年3月19日第40页7.3.28259的工作方式什么是8259A的中断结束?8259A利用中断服务寄存器ISR判断:某位为1,表示正在进行中断服务;该位为0,就是该中断结束服务。这里说明如何使ISR某位为0,不反映CPU的工作状态,使ISRi=0是通过向8259A发出中断结束命令(EOI命令)实现的。

中断结束方式§7.3

可编程中断控制器8259A2024年3月19日第41页7.3.28259的工作方式

中断结束方式自动EOI(AEOI)——(自动EOI方式)非指定EOI(NSEOI)——(正常EOI方式)指定EOI(SEOI)——(特殊EOI方式)§7.3

可编程中断控制器8259A2024年3月19日第42页中断自动结束方式(用于单片8259系统,且无中断嵌套的情况下。由ICW4设置):此方式下,系统一进入中断过程就自动将ISR中的对应位清0。一般中断结束方式(用于全嵌套方式下):在中断服务程序中CPU发送中断结束命令EOI(OCW2)后,8259会将ISR中正在服务的中断源的ISi复位。特殊中断结束方式(用于非全嵌套方式下):非全嵌套方式下,无法用ISR内容确定哪一位为最后响应并正在处理的中断,此时可用特殊中断结束命令SEOI(OCW2)指定ISR中要复位的IS位。7.3.28259的工作方式§7.3

可编程中断控制器8259A2024年3月19日第43页7.3.28259的工作方式

连接系统总线的方式缓冲方式非缓冲方式8259通过总线驱动器和数据总线相连。8259在缓冲方式下向外输出状态字或中断向量码时,从SP/EN端输出一个低电平信号,作为总线驱动器的启动信号。§7.3

可编程中断控制器8259A2024年3月19日第44页7.3.2

8259的工作方式

连接系统总线的方式缓冲方式非缓冲方式8259数据线直接与系统数据总线相连。此方式下,主片8259的SP/EN端接高电平,从片8259的SP/EN端接低电平。§7.3

可编程中断控制器8259A2024年3月19日第45页7.3.2

8259的工作方式

中断屏蔽方式普通屏蔽方式特殊屏蔽方式利用IMR屏蔽字使其中某些位为1,来屏蔽相应的中断请求输入信号。但此时不改变ISR的内容。§7.3

可编程中断控制器8259A2024年3月19日第46页7.3.2

8259的工作方式

中断屏蔽方式普通屏蔽方式特殊屏蔽方式提供了允许较低优先级的中断能够得到响应的特殊手段。原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。特殊屏蔽方式中只能用SEOI命令结束中断。§7.3

可编程中断控制器8259A2024年3月19日第47页7.3.2

8259的工作方式

中断触发方式边沿触发方式电平触发方式上升沿触发此方式下,当该中断得到响应后,必须及时撤除有效高电平信号,以免引起第二次中断。§7.3

可编程中断控制器8259A2024年3月19日第48页级联工作方式单片8259A可支持8个中断源;采用多片8259A级连,可最多支持64个中断源。n片8259A可支持7n+1个中断源;级连时只能有一片8259A为主片,其余的均为从属片;涉及到的8259A引脚包括:CAS0-CAS2SP#/EN#IRiINT§7.3

可编程中断控制器8259A2024年3月19日第49页7.3.38259的编程通过写初始化命令字(ICW1~ICW4)使8259处于某种指定的工作方式,初始化编程应在器件使用前完成。写入后一般不再改变。通过写操作命令字(OCW1~OCW3)使处于初始状态的8259去执行具体的某种操作方式,OCW可在应用程序中随时写入,以此实现对中断处理过程的动态控制。(2)操作方式编程:(1)初始化编程:(初始化程序)§7.3

可编程中断控制器8259A2024年3月19日第50页说明:8259的端口地址

A0用以区分8259A芯片中的不同寄存器组。由于8259A内部寄存器的寻址只用到一位地址信号,所以一片8259A芯片只占用系统中的两个端口地址,即偶地址和奇地址,且规定偶地址小于奇地址。§7.3

可编程中断控制器8259A2024年3月19日第51页初始化编程流程初始化编程必须按流程进行,ICW1~ICW4写入次序不能乱。

ICW1写入偶地址端口(A0=0)。

ICW2~ICW4依次写入奇地址端口(A0=1)。写ICW1写ICW2写ICW3写ICW4级连?需要ICW4?NN7.3.38259的编程§7.3

可编程中断控制器8259A2024年3月19日第52页(1)写初始化命令字

ICW1在A0=0,D4=1时为写入IC4SALTIM1ⅩⅩⅩ用于8080/85模式下1:需ICW40:不需ICW40:多片级联1:单片8259用于8080/85下,可为1或01电平触发0边沿触发0A0D0D1D2D3D4D5D6D7§7.3

可编程中断控制器8259A2024年3月19日第53页

ICW2在8086/88模式下,可提供不同中断源

的中断向量码1A0D0D1D2D3D4D5D6D7自动设定为IR0~IR7的类型编码由用户软件定义,编程设置位若ICW2为25H,则IR0~IR7为:

20H、21H、22H、23H、24H、25H、26H、27H(1)写初始化命令字§7.3

可编程中断控制器8259A2024年3月19日第54页(1)写初始化命令字

ICW3只在级联方式时使用IR7IR6IR5IR4IR3IR2IR1IR01A0D0D1D2D3D4D5D6D71:相应的IRi接从82590:相应的IRi不接从8259在主控8259中,ICW3的每一位对应一个IR输入。例:若ICW3=F0H(11110000B),则IR7~IR4上分别接了从8259,IR3~IR0上没接。§7.3

可编程中断控制器8259A2024年3月19日第55页(1)写初始化命令字00000D2D1D01A0D0D1D2D3D4D5D6D7在从8259中,ICW3的低三位表示该从8259接主控8259的IR编号。例:若某从8259的INT接在主片的IR5引脚,则D2D1D0=101。此三位的编码对应从属8259接主控片的IR编号在中断响应时,主片通过CAS0~CAS2送出被允许中断的从片标识码,各从片用自己的ICW3和CAS0~CAS2比较,二者一致的从片被确定为当前的中断源,才可发送自己的中断矢量。§7.3

可编程中断控制器8259A2024年3月19日第56页

ICW4方式控制命令字,ICW1的D0=1时才需写入。000SFNMBUFM/SAEOIPM1:8086/880:8080/850:非自动

结束1:自动EOI1A0D0D1D2D3D4D5D6D7特殊全嵌套方式:1一般嵌套方式:00Ⅹ:非缓冲方式10:缓冲方式/从片11:缓冲方式/主片(1)写初始化命令字§7.3

可编程中断控制器8259A2024年3月19日第57页(2)写操作命令字

OCW1中断屏蔽字用于设置对8259中断的屏蔽操作,其每一位控制一根中断请求输入线。M7M6M5M4M3M2M1M01A0D0D1D2D3D4D5D6D71:屏蔽0:允许若OCW1=06H(00000110B),则IR2和IR1上的请求被屏蔽。在初始化开始时,默认屏蔽字各位为0。§7.3

可编程中断控制器8259A2024年3月19日第58页(2)写操作命令字OCW2设置优先级的循环方式及中断结束方式RSLEOI00L2L1L00A0D0D1D2D3D4D5D6D7中断等级编码001011一般EOI特殊EOI中断结束命令101100000111110010循环优先级的一般EOI命令在自动EOI下置循环优先级在自动EOI下清循环优先级循环优先级的特殊EOI命令设置优先级无效自动循环特殊循环§7.3

可编程中断控制器8259A2024年3月19日第59页OCW3可设置查询方式、特殊屏蔽方式以及读8259

内部寄存器的当前状态。0ESMMSMM01PRRRIS0A0D0D1D2D3D4D5D6D70Ⅹ:无效10:复位特殊屏蔽11:设置特殊屏蔽0Ⅹ:无效10:可读IRR11:可读ISR1:允许查询0:不许查询(2)写操作命令字§7.3

可编程中断控制器8259A2024年3月19日第60页0ESMMSMM01PRRRIS0A0D0D1D2D3D4D5D6D7例:假设当前CPU响应IR3中断,若要此时开放优先级低于IR3的中断,则可以在该中断服务程序中增加以下代码设置特殊屏蔽。INAL,21H;读IMRORAL,08H;增加屏蔽IR3OUT21H,ALMOVAL,68H;设置特殊屏蔽OUT20H,AL;写OCW3

若要取消特殊屏蔽,恢复原有中断优先级,可加入以下代码:MOVAL,48H;取消特殊屏蔽OUT20H,AL;写OCW3INAL,21H;读IMRANDAL,0F7H;取消屏蔽IR3OUT21H,AL增加特殊屏蔽时应先写屏蔽字OCW1,再发特殊屏蔽命令OCW3,而取消特殊屏蔽时顺序相反。§7.3

可编程中断控制器8259A2024年3月19日第61页8259查询时,可设置OCW3:①A0=0P=0,RR=1,RIS=0查询IRR寄存器MOVAL,00001010BOUT20H,ALINAL,20H若要读ISR内容,只需改第一句为MOVAL,00001011B②A0=0P=1,RR=0,则读偶地址可查询是否有中断请求等信息W0W1W2ⅩⅩⅩⅩII=1,有中断I=0,无中断表示处于中断请求的中断源的最高优先级§7.3

可编程中断控制器8259A2024年3月19日第62页③任意时刻读/写奇地址(A0=1),均可以访问中断屏蔽寄存器IMR,如下面程序段可以完成将00H和FFH依次写入并读出校验,以检查8259IMR是否正常工作。MOVAL,00HOUT21H,ALINAL,21HORAL,ALJNZIMRERRMOVAL,0FFHOUT21H,ALINAL,21HINCALJNZIMRERRP277§7.3

可编程中断控制器8259A2024年3月19日第63页7.3.48259的应用及举例写入OCW1、ICW2、ICW3、ICW4001××1写入ICW1001×10写入OCW3001100写入OCW2001000读出IMR、0101读出ISR、IRR、中断查询字0100操作CSWRRDD3D4A0在硬件系统中,8259仅占两个外设接口地址;初始化命令字和操作命令字写入不同的端口地址,同时可利用命令字的写入顺序及D3、D4位加以区别。§7.3

可编程中断控制器8259A2024年3月19日第64页D0~D7D0~D7IORIORIOWIOWINTAINTAINTINTA1A2A3A4A10A13A15A14A12A11A9A8A7A6≥1○﹠○﹠G2AG2BGCBAY0RDWRA0CSSP/EN+5V…IR0IR1IR7FF00H~FF02HCPU8259写入操作

00H:ICW1、OCW2、OCW302H:ICW2、ICW3、ICW4、OCW1读出操作

00H:IRR、ISR、02H:IMR中断查询字A5§7.3

可编程中断控制器8259A2024年3月19日第65页7.3.48259的应用举例——初始化MOVDX,0FF00HMOVAL,13HOUTDX,ALMOVDX,0FF02HMOVAL,48HOUTDX,ALOUTDX,ALOUTDX,ALMOVAL,03HMOVAL,0E0H;8259地址,A0=0;8259地址,A0=1;ICW1=00010011B边沿触发

;单片,需ICW4;ICW2=48H,中断向量码

;IR0~IR7对应48H~4FH;ICW4=00000011B86/88模式

;自动EOI,非缓冲、一般嵌套;OCW1=11100000B

;屏蔽IR7、IR6、IR5§7.3

可编程中断控制器8259A2024年3月19日第66页7.3.48259的应用举例——中断服务程序设计(1)中断服务程序要定义为一个远过程;(2)程序开始要保护现场,即把在程序中要使用的寄存器内容压入堆栈;(3)开中断;(4)写中断服务部分;(5)关中断,恢复现场,发EOI命令;(6)中断返回(IRET);§7.3

可编程中断控制器8259A2024年3月19日第67页7.3.48259的应用举例——设置中断向量表(编程法)

INTTABLE:MOVAX,0000H MOVDS,AX MOVSI,n×4 MOVDX,OFFSETSERVE MOV[SI],DX MOVDX,SEGSERVE MOV[SI+2],DX§7.3

可编程中断控制器8259A2024年3月19日第68页7.3.48259的应用举例——

设置中断向量表(DOS功能调用)INTTABLE:MOVAH,25H;功能号25H MOVAL,n;中断类型码给AL

MOVDX,SEGSERVE MOVDS,DX;服务程序段地址给DS MOVDX,OFFSETSERVE INT21H;偏移地址给DX功能号25H→AH中断向量码→AL中断处理程序首地址之段地址:偏移地址→DS:DXINT21H§7.3

可编程中断控制器8259A2024年3月19日第69页8259的级联举例某系统设置两片8259级联,从8259的INT与主片的IR3相连。已知当前主8259的IR0和IR5端分别引入两中断请求,从8259的IR2和IR3两端也分别引入两中断请求。若已知主8259的端口地址为FFE8H和FFE9H,从片的为FFFAH和FFFBH,分别对主、从片进行初始化。+5VCAS0CAS1CAS2CAS0CAS1CAS2SP/ENSP/ENINTINTIR0IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR4IR6IR7IR3IR5D0~D7D0~D7INTAINTA系统总线从8259主8259§7.3

可编程中断控制器8259A2024年3月19日第70页

主8259被定义为级联方式,中断请求信号用边沿触发,可引入的中断向量码为40H~47H;主片的IR3接有从片,采用特殊完全嵌套方式,非自动EOI结束方式,非缓冲方式;屏蔽掉IR0、IR3和IR5以外的其它中断源,采用普通EOI结束方式。ICW1=00010001(11H)IC4SALTIM1ⅩⅩⅩ用于8080/85模式下1:需ICW40:不需ICW40:多片级联1:单片8259用于8080/85下,可为1或01电平触发0边沿触发0A0D0D1D2D3D4D5D6D7§7.3

可编程中断控制器8259A2024年3月19日第71页ICW2=01000000(40H)1A0D0D1D2D3D4D5D6D7自动设定为IR0~IR7的类型编码由用户软件定义

主8259被定义为级联方式,中断请求信号用边沿触发,可引入的中断向量码为40H~47H;主片的IR3接有从片,采用特殊完全嵌套方式,非自动EOI结束方式,非缓冲方式;屏蔽掉IR0、IR3和IR5以外的其它中断源,采用普通EOI结束方式。ICW1=00010001(11H)§7.3

可编程中断控制器8259A2024年3月19日第72页ICW1=00010001(11H)IR0IR1IR2IR3IR4IR5IR6IR71A0D0D1D2D3D4D5D6D71:相应的IRi接从82590:相应的IRi不接从8259主片ICW3(主)ICW3=00001000(08H)ICW2=01000000(40H)

主8259被定义为级联方式,中断请求信号用边沿触发,可引入的中断向量码为40H~47H;主片的IR3接有从片,采用特殊完全嵌套方式,非自动EOI结束方式,非缓冲方式;屏蔽掉IR0、IR3和IR5以外的其它中断源,采用普通EOI结束方式。§7.3

可编程中断控制器8259A2024年3月19日第73页ICW1=00010001(11H)(主)ICW3=00001000(08H)ICW2=01000000(40H)

主8259被定义为级联方式,中断请求信号用边沿触发,可引入的中断向量码为40H~47H;主片的IR3接有从片,采用特殊完全嵌套方式,非自动EOI结束方式,非缓冲方式;屏蔽掉IR0、IR3和IR5以外的其它中断源,采用普通EOI结束方式。0:8080/85PMAEOIM/SBUFSFNM0001:8086/880:非自动

结束1:自动EOI1A0D0D1D2D3D4D5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论