1、主要内容:主要内容:l 中断的基本概念中断的基本概念l 中断处理过程中断处理过程l 可编程中断控制器可编程中断控制器8259A8259A的结构、功能的结构、功能l 可编程中断控制器可编程中断控制器8259A8259A的初始化编程的初始化编程第七章第七章 中断技术中断技术n什么是中断什么是中断?n与生活场景的比较与生活场景的比较正在打球正在打球请求暂停请求暂停暂停暂停继续比赛继续比赛执行程序执行程序事件发生事件发生事件处理事件处理继续执行程序继续执行程序中断处理中断处理中断请求及响应中断请求及响应实际场景实际场景计算机计算机中断返回中断返回n7.1 中断的基本概念中断的基本概念中断的用途中断的用
2、途 1、同步处理、同步处理2、实现了实时处理、实现了实时处理3、多道程序或多重任务的运行、多道程序或多重任务的运行4、突发事件处理、突发事件处理中断的定义中断的定义 nCPU执行程序时,由于发生了某种随机的事件执行程序时,由于发生了某种随机的事件(外部或内部外部或内部),引起,引起CPU暂时中断正在运行的程暂时中断正在运行的程序,转去执行一段特殊的服务程序序,转去执行一段特殊的服务程序(称为中断服称为中断服务程序或中断处理程序务程序或中断处理程序),以处理该事件,该事,以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一件处理完后又返回被中断的程序继续执行,这一过程称为中断。过程称为中
3、断。能够引起中断的原因,或能够发出中能够引起中断的原因,或能够发出中断请求信号的外设。断请求信号的外设。n可屏蔽中断可屏蔽中断 (INTR)n不可屏蔽中断不可屏蔽中断(NMI)n外部中断外部中断n(硬中断)(硬中断)n内部中断内部中断n(软中断)(软中断)(因执行指令而引起)(因执行指令而引起)n二、中断源二、中断源中断源中断源n引起引起CPU中断的事件中断的事件中断源。例如:中断源。例如:n外设请求输入输出数据,报告故障等n事件掉电、硬件故障、软件错误、非法操作、定时时间到等n中断源分为:外部中断、内部中断中断源分为:外部中断、内部中断n内部中断:CPU内部执行程序时自身产生的中断n外部中断
4、:CPU以外的设备、部件产生的中断n 8086/8088的外部中断信号:的外部中断信号:INTR、NMInINTR可屏蔽中断请求,高电平有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应。nNMI非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。中断系统的功能中断系统的功能n 实现实现中断及返回中断及返回 中断源发出中断请求,中断源发出中断请求,CPU决定是否响决定是否响应:应:若响应若响应,则,则保护断点和现场保护断点和现场,转入相应中,转入相应中断服务程序,断服务程序,中断服务结束中断服务结束后,后,恢复现场和断恢复现场和断点点,继续执行原程序。,继续执
5、行原程序。CPU执行执行中断服务程序中断服务程序1 1非预料事件非预料事件1 1非预料事件非预料事件是指事件发生的时间无法预知,是指事件发生的时间无法预知,即中断源何时产生中断不确定,是随机的。即中断源何时产生中断不确定,是随机的。中断源产生中断的随机性,使中断服务程序中断源产生中断的随机性,使中断服务程序的执行也具有随机性,的执行也具有随机性,即何时执行中断服务程即何时执行中断服务程序不是在程序中安排好的。序不是在程序中安排好的。7.2 中断处理过程及中断源识别中断处理过程及中断源识别n四个步骤:四个步骤:n中断请求n中断响应n中断服务n中断返回以下以外部中断为主介绍这四个步骤。n中断处理过
6、程中断处理过程1)中断请求)中断请求n外设接口(中断源)发出中断请求信号,送到外设接口(中断源)发出中断请求信号,送到CPU的的INTR或或NMI引脚;引脚;n中断请求信号:边沿请求,电平请求例如,NMI为边沿请求,INTR为电平请求n中断请求信号应保持到中断被处理为止;中断请求信号应保持到中断被处理为止;nCPU响应中断后,中断请求信号应及时撤销。响应中断后,中断请求信号应及时撤销。n在在8086/8088系统中,外设的中断要经过系统中,外设的中断要经过8259A可编程中断控制器可编程中断控制器(PIC)的排队判优后向的排队判优后向CPU发出:发出:(I/O接口)PIC CPUn12)中断响
7、应)中断响应中断响应CPU响应可屏蔽中断申请必须满足3个条件:无总线请求;CPU被允许中断;CPU执行完现行指令若NMI和 INTR 同时发生,则首先响应NMI。2)中断响应(续)中断响应(续)nCPU中断响应时,要做下述三项工作:中断响应时,要做下述三项工作:n向中断源发出INTA中断响应信号;n断点保护,包括CS、IP和FLAGS(PSW)。这主要是保证中断结束后能返回被中断的程序。n获得中断服务程序首地址(入口)。如何得到中断处理程序的首地址?n固定入口法n中断向量法常用IPLIPHCSLCSHFLAGLFLAGHSP进入中断服务程序时中断处理 CPU响应中断后要自动完成三项任务1、关闭
8、中断;2、CS、IP以及FR的内容推入堆栈;3、中断服务程序段地址送入CS中,偏移地址送入IP中。一旦CPU响应中断,就可转入中断服务程序之中。中断服务程序的结构如下:3)中断处理(中断服务)中断处理(中断服务)PUSH AX;保护现场PUSH BXSTI;开中断;中断处理CLI;关中断POP BX;恢复现场POP AXSTI;开中断IRET;中断返回 4)中断返回)中断返回n执行中断返回指令执行中断返回指令IRETnIRET指令将使CPU把堆栈内保存的断点信息弹出到IP、CS和FLAG中,保证被中断的程序从断点处能够继续往下执行。IPLIPHCSLCSHFLAGLFLAGHSPIPLIPHC
9、SLCSHFLAGLFLAGHSPIPCSFLAG进入中断服务程序时中断返回后中断响应的时序中断响应的时序中断源识别中断源识别n计算机中的中断源有很多,计算机中的中断源有很多,CPU必须识别是必须识别是哪一个设备产生中断。识别中断源有两个方哪一个设备产生中断。识别中断源有两个方法:法:n软件查询。将中断信号从数据总线读入,用程序进行判别。n中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断源。(8086/8088即采用此种方法)1查询中断(软件识别中断优先权)查询中断(软件识别中断优先权)n n读中断请求寄存器读中断请求寄存器n外设外设1有请求?有请求?n外设外设1中断服务程序中断服务
10、程序n外设外设2有请求?有请求?n外设外设2中断服务程序中断服务程序nn外设外设8有请求?有请求?n外设外设8中断服务程序中断服务程序n后续处理后续处理nYnNnNnNnNnYnYn硬件实现的中断优先权排队电路硬件实现的中断优先权排队电路7.3 8086的中断系统的中断系统n7.3.1 外部中断外部中断1.可屏蔽中断可屏蔽中断2.非屏蔽中断非屏蔽中断n7.3.2 内部中断内部中断由执行中断指令由执行中断指令INT引起的中断;引起的中断;由于由于CPU的某些错误引起的中断;的某些错误引起的中断;为调试程序设置中断。为调试程序设置中断。1 1INT n INT n 指令中断指令中断2 2处理处理C
11、PUCPU某些错误的中断某些错误的中断(1)(1)除法错中断。除法错中断。(2)(2)溢出中断(溢出中断(INTOINTO)。)。3 3为调试程序设置的中断。为调试程序设置的中断。n(1)(1)单步中断。单步中断。n(2)(2)断点中断。断点中断。n7.3.37.3.3中断优先级中断优先级 n优先级从高到低顺序如下:优先级从高到低顺序如下:n内部中断nNMInINTRn单步中断 中中断向量表断向量表每个中断都分配有中断类型码,每个中断都分配有中断类型码,CPUCPU通过中断类型通过中断类型码经过处理要找到对应的中断服务程序的码经过处理要找到对应的中断服务程序的入口地址入口地址。中中断断控控制制
12、器器CPUINTRINTAn中中断断请请求求信信号号由由中断向量表中断向量表将中断类型码和中断服务程序的入口将中断类型码和中断服务程序的入口地址联系起来。地址联系起来。n7.3.4 7.3.4 中断向量和中断向量表中断向量和中断向量表 n中断向量:中断向量:即中断服务子程序的入口地址,也就是中断即中断服务子程序的入口地址,也就是中断服务子程序的第一条指令在存储器中的存放地址。服务子程序的第一条指令在存储器中的存放地址。.中断向量表中断向量表设置在系统设置在系统RAMRAM的最低端的最低端00000H00000H003FFH003FFH的的1K1K字节内,前字节内,前2 2个字节为中个字节为中断
13、服务程序入口地址的断服务程序入口地址的偏移地址偏移地址IPIP,后后2 2个字节为服务程序的个字节为服务程序的段基址段基址CSCS。规定规定:中断向量表中各向量中断向量表中各向量等长等长,且处理程序入口地址在向量表中按中且处理程序入口地址在向量表中按中断源的断源的类型码排序类型码排序。重要公式重要公式:向量地址向量地址=向量表的首地址向量表的首地址 +中断类型码中断类型码4 4IPLIPHCSLCSH IPLIPHCSLCSH00000H003FFH中中断断类类型型 0中中断断类类型型 400010H中断向量表中断向量表表中共有表中共有256256个中断类型码个中断类型码对应的向量值对应的向量
14、值(256(256*4=1K)4=1K)每个向量占用每个向量占用4 4个字节,称个字节,称为中断向量。为中断向量。7.3.57.3.5、中断向量的装入与修改、中断向量的装入与修改MOVAX,00HMOVDS,AXMOVSI,60H*4;中断类型号4SIMOVAX,OFFSET A;中断服务程序偏移地址AXMOVSI,AXMOVAX,SEG A;中断服务程序段地址AXMOVSI+2,AX1)、直接写入法)、直接写入法C L ICLDMOVAX,0MOV ES,AXMOVDI,4*60HMOVAX,OFFSET_INTRSTOSWMOVAX,SEG_INTRSTOSWS T In2 2)使用串存储
15、指令使用串存储指令实际上在实际上在PCPC机中,并不常采用用户自行装入中断向量的做法。即便机中,并不常采用用户自行装入中断向量的做法。即便是系统尚未使用的中断号,也不需用户直接装入中断向量,而是采是系统尚未使用的中断号,也不需用户直接装入中断向量,而是采用中断向量修改的方法使用系统的中断资源。用中断向量修改的方法使用系统的中断资源。2 2、中断向量的修改、中断向量的修改n中断向量修改的步骤有中断向量修改的步骤有3 3步:步:用用35H35H号功能,获取元中断向量,并保存在字变量中。号功能,获取元中断向量,并保存在字变量中。用用25H25H号功能,设置新中断向量,取代原中断向量,以便当中断号功能
16、,设置新中断向量,取代原中断向量,以便当中断发生后,转移到新中断服务程序中去。发生后,转移到新中断服务程序中去。新中断服务程序完毕后,利用新中断服务程序完毕后,利用25H25H号功能恢复原中断向量。号功能恢复原中断向量。MOVAH,35HMOVAL,nHINT21HMOVBX,ESMOVOLD_SEG,BXMOVOLD_OFF,BXMOVAH,25HMOVAL,nHMOVDX,SEG_INTRMOVDS,DXMOVDX,OFFSET_INTRINT21HMOVAH,25HMOVAL,nHMOVDX,OLD_SEGMOVDS,DXMOVDX,OLD_OFFINT21H7.4 可编程中断控制器可编
17、程中断控制器8259AnPIC,Programmable Interrupt Controllern可对可对8个个中断源实现优先级控制中断源实现优先级控制 n可扩展至对可扩展至对64个中断源实现优先级控制个中断源实现优先级控制 n可编程设置不同工作方式可编程设置不同工作方式n根据中断源向根据中断源向x86提供不同中断类型码提供不同中断类型码n引脚分配及功能见教材引脚分配及功能见教材8259A的内部结构的内部结构nIRR 中断请求寄存器中断请求寄存器n 用来存放由外部输入的中断请求信号用来存放由外部输入的中断请求信号IR0IR7,允,允许多位置许多位置1。nISR 中断服务寄存器中断服务寄存器n
18、 保存、记录正在处理中的中断请求,当任何一级中保存、记录正在处理中的中断请求,当任何一级中断被响应,断被响应,CPU正在执行它的中断服务程序时,正在执行它的中断服务程序时,ISR相相应位置应位置1。nPR 优先级判别器优先级判别器n 对保存在对保存在IRR中的中断请求进行优先级识别,送出最中的中断请求进行优先级识别,送出最高级别中断请求到高级别中断请求到ISR中;当出现多重中断时,中;当出现多重中断时,PR判判定是否允许所出现的中断去打断正在处理的中断。定是否允许所出现的中断去打断正在处理的中断。nIMR 中断屏蔽寄存器中断屏蔽寄存器 n 实现对各级中断的有选择的屏蔽,当某位为实现对各级中断的
19、有选择的屏蔽,当某位为1,表示,表示禁止这一级中断请求进入系统禁止这一级中断请求进入系统7.4.1 8259A的内部结构 D7D0 RD WR A0 CS CAS0 CAS1 CAS2 SP/EN数据缓数据缓冲器冲器读写逻读写逻辑辑级联级联比较比较/缓缓冲冲控制逻辑控制逻辑 中断屏蔽寄存器中断屏蔽寄存器IMRISR PRIRRINTINTAIR0IR7VccGND7.5.1 8259A的工作过程的工作过程n8259A对中断请求的处理过程如下:对中断请求的处理过程如下:n当某IRi有效时,IRR相应位置1n若有效的IRi未被屏蔽,则向CPU发出中断请求n检测到第1个INTA信号后,置ISRi=1
20、,IRRi=0 n检测到第2个INTA信号后,把ISRi=1中最高优先级的中断类型码放到DB上n若工作在AEOI方式,在第2个INTA结束时,使ISRi复位;否则由CPU发出EOI命令使ISRi复位7.5.2 8259A的工作方式的工作方式n8259A的工作方式有如下几类:的工作方式有如下几类:n中断优先方式与中断嵌套n中断结束处理方式 n屏蔽中断源的方式n中断触发方式n级联工作方式中断优先方式与中断嵌套中断优先方式与中断嵌套n中断优先方式中断优先方式 两类优先级控制方式:固定优先级和循环优先级n固定优先级方式n所有中断请求IRi的中断优先级固定不变n优先级排列顺序可编程改变n加电后8259A
21、的默认方式,默认优先级顺序从高到低为IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低级最高级最高级最低级优先级优先级IR7IR6IR5IR4IR3IR2IR1IR0默认优先级默认优先级优先级可编程改变优先级可编程改变中断优先方式与中断嵌套(续)中断优先方式与中断嵌套(续)n循环优先级方式 n中断源轮流处于最高优先级,即自动中断优先级循环n初始优先级顺序可用编程改变n某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级 IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最
22、低级ISR内容内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前的服务结束以前0101000001000000IR4的服务结束以后的服务结束以后ISRi中断优先方式与中断嵌套(续)中断优先方式与中断嵌套(续)n中断嵌套中断嵌套方式方式n在中断处理过程中允许被更高优先级的事件所中断称为中断嵌套。8259A有两种中断嵌套方式:n普通全嵌套方式(默认方式)一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。n特殊全嵌套方式 一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊全嵌套仅用于多个8259A级连时的主8259A
23、,而不能用于从属8259A或单8259A系统。中断结束处理方式中断结束处理方式n当某一当某一IRi中断被服务时,中断被服务时,ISR中的相应位中的相应位ISRi=1。当服务结束后,则必须清零该。当服务结束后,则必须清零该ISRi位。使位。使ISRi=0是通过向是通过向8259A发出中发出中断结束命令(断结束命令(EOI命令)实现的。命令)实现的。n三种三种EOI命令命令n自动EOI(AEOI)(自动EOI方式)n非指定EOI(NSEOI)(正常EOI方式)n指定EOI(SEOI)(特殊EOI方式)nAEOI:在第2个INTA结束时,由8259A使ISRi自动复位;n因不保留当前正在服务的中断的
24、状态,故AEOI不能用于中断嵌套方式nSEOI:由CPU发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。n用于特殊屏蔽方式nNSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。n用于普通全嵌套方式屏蔽中断源的方式屏蔽中断源的方式nIMR屏蔽字决定了屏蔽字决定了允许或禁止允许或禁止某位某位IRi所对应所对应的中断的中断:IMi=1 禁止,禁止,IMi=0 允许。允许。n特殊屏蔽方式:特殊屏蔽方式:n提供了允许较低优先级的中断能够得到响应的特殊手段。n原理:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外
25、的所有中断请求均能得到响应。n特殊屏蔽方式中只能用SEOI命令结束中断。中断触发方式中断触发方式n边沿触发边沿触发nIRi出现上升沿表示有中断请求 n电平触发电平触发nIRi出现高电平表示有中断请求n在第在第1个个INTA结束前,结束前,IRi必须保持高电平必须保持高电平 级联工作方式级联工作方式n单片单片8259A可支持可支持8个中断源;个中断源;n采用多片采用多片8259A级连,可最多支持级连,可最多支持64个中断个中断源。源。n片片8259A可支持可支持7n+1个中断源;个中断源;n级连时只能有一片级连时只能有一片8259A为主片,其余的均为主片,其余的均为从属片;为从属片;n涉及到的涉
26、及到的8259A引脚包括:引脚包括:nCAS0-CAS2nSP/ENnIRinINT级连电路连接方法级连电路连接方法7.5.3 8259A的编程使用的编程使用n8259A的控制命令分为的控制命令分为n初始化命令字ICWnICW1ICW4n向8259A写入ICW的过程称为初始化编程n操作命令字OCW nOCW1OCW3n向8259A写入OCW的过程称为操作方式编程8259A的初始化顺序的初始化顺序 n8259的初始化流的初始化流程如图程如图n注意次序不可颠倒 写写ICW1写写ICW2级连?级连?写写ICW3需需ICW4?写写ICW4NNYY8259A的控制命令字的控制命令字n初始化初始化8259
27、A必须从必须从ICW1开始开始n写ICW1意味着重新初始化8259An写入ICW1后,8259A的状态如下:n清除ISR和IMR(全0);n将中断优先级设成初始状态:IR0最高,IR7最低;n设定为一般屏蔽方式;n采用非自动中断结束方式;n状态读出逻辑预置为读IRR。ICW1初始化字初始化字nLTIM:触发方式触发方式n=1 高电平触发n=0 上升沿触发nSNGL:级连控制级连控制n=1 单片n=0 级连nIC4:ICW4控制控制n=1 要写ICW4n=0 不写ICW4(默认ICW4为全0)A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC4I
28、CW2中断向量码中断向量码nT7T3:中断向量码的高中断向量码的高5位位nT2T0:最低最低3位为中断源的序号位为中断源的序号IRnn000111分别对应IR0IR7n由8259A根据中断源的序号自动填入 例如:若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x xICW3级连控制字级连控制字 n主片的级联控制字主片的级联控制字 nSi=1 对应IRi线上连接了从片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1
29、S0n从片的级联控制字从片的级联控制字 nID2ID0 标识码,说明本从片连接到主片的哪标识码,说明本从片连接到主片的哪个个IR引脚上。引脚上。000111分别对应分别对应IR0IR7。A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0ICW3级连控制字(续)级连控制字(续)nICW3必须与主从片的连接关系一致:必须与主从片的连接关系一致:例如,主片的例如,主片的IR4与从片的与从片的INT线连接,则主线连接,则主片的片的ICW3=10H,从片的,从片的ICW3=04H。n中断响应时,主片通过级连线中断响应时,主片通过级连线CAS2-CAS0送送
30、出被允许中断的从片标识码,各从片用自己出被允许中断的从片标识码,各从片用自己的的ICW3与与CAS2-CAS0比较,二者一致的从比较,二者一致的从片才可发送中断向量码。片才可发送中断向量码。ICW4中断结束方式字中断结束方式字 nSFNM:特殊全嵌套特殊全嵌套1 特殊全嵌套方式0 一般全嵌套方式nAEOI:自动自动EOI1 自动EOI方式0 非自动EOI方式A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI 1nBUF:缓冲方式缓冲方式 M/S:主主/从缓冲选择从缓冲选择BUF M/S 1 1 缓冲方式缓冲方式/主主PIC 1 0 缓冲方式缓
31、冲方式/从从PIC 0 x 非缓冲方式非缓冲方式/正常正常8259A的操作命令字的操作命令字OCW nOCW用于设置用于设置8259的工作状态的工作状态n在初始化后写入在初始化后写入nOCW的写入顺序可任意的写入顺序可任意n写入地址要求:写入地址要求:nOCW1必须写入奇地址端口(A0=1)nOCW2,OCW3必须写入偶地址端口(A0=0)OCW1中断屏蔽字中断屏蔽字 nMi=1 中断请求线中断请求线IRi被屏蔽被屏蔽(不允许中断不允许中断)=0 允许该允许该IRi中断中断 nOCW1将写入将写入IMR寄存器。寄存器。nA0=1时读时读OCW1可读出设置的可读出设置的IMR内容。内容。A0 D
32、7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M0OCW2中断结束和优先级循环中断结束和优先级循环 nL2L0:优先级编码优先级编码nR:优先级自动循环优先级自动循环nSL:指定优先级指定优先级nEOI:结束中断命令结束中断命令 R SL EOI 0 0 1 非指定非指定EOI 命令命令(NSEOI),全嵌套方式,全嵌套方式 0 1 1 指定指定EOI 命令命令(SEOI),全嵌套方式,按,全嵌套方式,按L2-L0编码复位编码复位ISR 1 0 1 NSEOI 命令,优先级自动循环命令,优先级自动循环 1 0 0 自动自动EOI,设置优先级自动循环,
33、设置优先级自动循环 0 0 0 自动自动EOI,取消优先级自动循环,取消优先级自动循环(固定优先级固定优先级)1 1 1 SEOI 命令,按命令,按L2-L0编码循环优先级编码循环优先级(L2-L0设为最低优先级设为最低优先级)1 1 0 按按L2-L0编码循环优先级编码循环优先级(L2-L0设为最低优先级设为最低优先级)A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0OCW3屏蔽方式和读出控制字屏蔽方式和读出控制字 nESMM:允许使能特殊屏蔽方式允许使能特殊屏蔽方式nSMM:特殊屏蔽方式特殊屏蔽方式ESMM SMM1 1 特殊屏蔽方式置位特
34、殊屏蔽方式置位1 0 特殊屏蔽方式复位特殊屏蔽方式复位0 x 非特殊屏蔽方式非特殊屏蔽方式P(Polling):=1 查询方式查询方式 =0 非查询方式非查询方式A0 D7D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P RR RISnRR:读寄存器读寄存器nRIS:ISR/IRR选择选择RR RIS1 1 读读ISR1 0 读读IRR0 x 无效无效OCW3(续)(续)n查询方式允许查询方式允许8259A不工作于中断方式,而不工作于中断方式,而是以查询方式工作。是以查询方式工作。nCPU先写一个D2=1的OCW3,再对同一地址读入,即可得到如下状态字节:I x
35、x x x R2 R1 R0 I=1表示有中断请求,中断请求号为R2-R0 此查询步骤可反复执行,以响应多个同时发生 的中断。n读读IRR/ISR:写入此命令后,随后再对同一:写入此命令后,随后再对同一地址读,即可得到地址读,即可得到IRR或或ISR的内容。的内容。8259A内部寄存器的寻址方法内部寄存器的寻址方法CSRDWRA0D4D3读写操作读写操作010000写OCW2写OCW3写ICW1写ICW2,ICW3,ICW4,OCW1(顺序写入)00101x1xx00101xx读出IRR、ISR读出IMRn需要需要CS、A0、RD、WR和和D4、D3的配合的配合n内部寄存器的访问方法如下表:内
36、部寄存器的访问方法如下表:8259A编程举例编程举例n按以下要求初始化按以下要求初始化8259A:n接口地址为20H和21H;n中断为上升沿触发;单片8259A;不写ICW4;n与IR0-IR3对应的中断向量码为08H-0BH;nIR4-IR7不使用。n根据要求,各初始化参数及工作参数如下:根据要求,各初始化参数及工作参数如下:nICW1=00010010=12HnICW2=08H 中断向量码 nOCW1=11110000=0F0H 中断屏蔽字 8259A编程举例(续)编程举例(续)初始化程序如下:初始化程序如下:INIT8259A:MOVDX,20H;A0=0,写ICW1MOVAL,12H;
37、上升沿触发,单片,不写ICW4OUTDX,ALMOVDX,21H;A0=1,写ICW2,OCW1MOVAL,08H;ICW2OUTDX,ALMOVAL,0F0H;OCW1:屏蔽IR4-IR7OUTDX,AL一、中断分类 8086/8088系统中,可以处理256个不同类型的中断,其编号从00H0FFH,称为中断类型号。内中断:除法出错 类型号0 自动产生 单步中断 类型号1 DEBUG执行T命令 断点中断 类型号3 DEBUG执行G命令 溢出中断 类型号4 执行 INTO INT n 类型号n(05H 0FFH)外中断外中断:不可屏蔽中断 类型号2 自动产生可屏蔽中断 类型号(32 255)由8
38、259管理中断逻辑中断逻辑INTn指令指令INTO指令指令除法除法错误错误单步单步断点断点非屏蔽中断请求非屏蔽中断请求n401CPUINTRNMIIR0IR6IR5IR4IR3IR2IR1IR7可编程可编程中中 断断控制器控制器(PIC)8259AINT23中断类型号n40000:4n+00000:4n+10000:4n+20000:4n+30010002010002000IPCS内存中断向量表物理地址单元内容INT 4AH地址单元内容 I P=1806H CS=F000H F000:180600000 H类型 0中断处理程序入口地址MOV AL,300:124类 型49 H中 断向 量00001 H0:1250:126向量地址:4AH*4=128H0:12700004 H类型 1中断处理程序入口地址0:12806 H0:12918 H0:12A00 H0:12BF0 H00008 H0:12C类 型4B H中 断向 量0:12D0:12E0:12F中断处理服务程序IRET003FC H类型 FFH中断处理程序入口地址例:例:设某中断源的类型码为设某中断源的类型码为4AH,中断向量地址,中断向量地址为为44AH=128H,即:,即:0000:0128H。