版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章微型计算机的中断系统,教学内容:中断的基本概念,中断的类型,中断向量表,中断源的识别,中断响应和处理过程;8259A中断控制器,功能与结构,8259A的编程,中断优先权的确定,应用举例。教学重点:深刻理解8086CPU的中断结构,中断类型,中断矢量,中断响应过程。了解8259A的编程结构及寄存器的作用,理解8259A工作方式、有关命令和初始化编程及其在PC机和实际中的应用。教学难点:中断嵌套;中断向量表(实模式、保护模式下);8259A的编程,2,6.1中断原理6.28086CPU中断系统6.3可编程中断控制器8259A6.4中断方式输入输出6.58259A在微机系统中的应用6.6*现代
2、微机中断控制,3,6.1中断原理,6.1.1中断的基本概念,1中断由于某个事件的发生,CPU暂停当前正在执行的程序,转而执行处理该事件的一个程序。该程序执行完成后,CPU接着执行被暂停的程序。这个过程称为中断。,4,2中断源引发中断的事件称为中断源内部中断(在CPU内部的中断源):程序异常(运算溢出等),陷阱中断(例如,单步运行程序等),软件中断(执行特殊指令)等。外部中断(发生在CPU外部的中断):外部故障(电源故障,存储器读写校验错)外部事件(定时时间到,外部特殊信号)IO事件(外部设备完成一次IO操作,请求数据传输),5,3中断识别用若干位二进制表示的中断源的编号。4中断断点由于中断的发
3、生,某个程序被暂停执行。该程序中即将执行,由于中断没有被执行的那条指令的地址称为中断断点,简称断点。,6,5中断服务程序处理中断事件的程序段称为中断服务程序。如:故障中断服务程序,输入输出中断服务程序。不同类型的中断需要不同的中断服务程序。中断服务程序不同于一般的子程序:子程序由某个程序调用,它的调用是由程序设定的,它的执行时间是确定的。中断服务程序由某个事件引发,它的执行一般是随机的,不确定的。,7,6中断系统为实现计算机的中断功能而配置的相关硬件、软件的集合称为中断系统。,8,6.1.2计算机采用中断控制技术主要用在以下方面:,1.提高并行处理能力实现CPU和多个外设同时工作,提高CPU效
4、率。2.实时处理能力计算机应用于实时控制时,对外部事件及时响应。故障处理能力及时处理故障,不影响其他程序的运行。4多道程序或多重任务的运行在操作系统的调度下,运行多道程序或多重任务。,9,以下概念是非抢占式、抢占式调度与是非抢占式、抢占式内核,中断及服务程序对任务调度的影响(补充不考试),非抢占式调度,10,抢占式调度,11,非抢占式内核,12,抢占式内核,13,6.1.3中断管理,1.对中断全过程的控制中断源发出中断请求时,CPU能决定是否响应这一中断。若允许响应这个中断请求,CPU在保护断点后,将控制转移到相应的中断服务程序去中断处理完,CPU返回到断点处继续执行被中断的程序。,14,2.
5、中断源的识别软件识别:响应中断后,CPU进入中断处理程序。在这个程序里,CPU逐个查询各中断源的状态,确定是哪一个设备申请了中断。硬件识别:响应中断后,CPU进入一个“中断响应周期”。在这个周期里,申请中断的设备向CPU发送它的中断类型。,15,3中断的优先权(级)优先权(级):有多个中断源同时提出中断请求时,CPU响应中断的优先次序。根据中断源提出中断申请的轻重缓急为每个中断源确定CPU对它们响应的优先权。CPU在分配优先权时,一般是按照提出中断的外设的速度和它们在微机系统中所处的地位来进行分配的。在PC机系统中,中断源的优先权由高到低的顺序依次为:除零数、INTn、INT0、NMI、INT
6、R、单步执行中断。,16,(1)软件查询法(2)分类申请法(3)链式优先权排队菊花链法(4)可编程中断控制器“向量”优先权排队,17,软件查询方法流程图,18,图6-1,菊花链中断优先级排队电路,19,4.中断嵌套CPU在处理中断过程中,如果出现了级别更高的中断请求,CPU停止执行低级中断的处理程序而去优先处理高级中断。等高级中断处理完毕后,再接着执行低级的未处理完的程序。这种中断处理方式称为多重(级)中断或中断嵌套。CPU在响应中断时已将IF清零,一定要在中断处理程序中加入开中断指令,才有可能进行中断嵌套。,20,中断嵌套,21,22,6.1.4中断过程,1中断源请求中断(1)外部中断源由外
7、部硬件产生可屏蔽或不可屏蔽中断的请求信号;(2)内部中断源在程序运行过程中发生了指令异常或其他情况。(3)中断屏蔽CPU用程序的方法允许某些中断源发出中断请求,而禁止某些中断源请求中断在外设的接口内增设一个中断屏蔽触发器Q=0时,中断请求不能发往INTR;适当地设定中断屏蔽触发器的状态,可以控制中断请求信号是否能够送到INTR端,23,2中断响应(1)响应可屏蔽中断必须同时具备以下条件:CPU处于允许中断状态(IF=1);没有不可屏蔽中断请求和总线请求;当前指令执行结束。(2)响应不可屏蔽中断必须同时满足以下条件:没有总线请求;当前指令执行结束。(3)响应内部中断的条件:当前指令执行结束。,2
8、4,CPU接受中断请求后转入中断响应周期:(1)识别中断源,取得中断源的中断类型;(2)将标志寄存器FLAGS和CS、IP(断点)先后压入堆栈保存;(3)清除自陷标志位TF和中断允许标志位IF;(4)获得相应的中断服务程序入口地址,转入中断服务程序。,中断响应周期,25,图6-3,中断过程,26,3中断服务(1)保护现场:保护中断服务时要使用的寄存器(压栈);(2)开中断:中断服务时能响应更高级的中断请求;(3)中断处理:执行输入输出或非常事件的处理;(4)关中断:恢复现场时不被新的中断打扰;(5)恢复现场:将堆栈中保存的内容弹出;(6)中断返回:通过中断返回指令,弹出IP,CS,FLAGS,
9、程序回到被中断的地址,恢复中断前的状态。,27,6.28086CPU中断系统,6.2.18086的中断类型中断类型:用8位二进制表示,可以有256个不同的中断;中断请求输入引脚:NMI、INTR;INT0(除法溢出)溢出中断(INTO)INTn指令NMIINTR单步中断。,28,可分为:A外部中断(1)可屏蔽中断INTR、(2)非可屏蔽中断NMIB内部中断(1)除数零中断、(2)单步执行中断、(3)溢出中断、(4)指令中断,29,图6-4,8086CPU中断,30,1.可屏蔽中断IF=0时,CPU不响应INTR的中断请求;IF=1时,CPU响应INTR的中断请求。用STI指令使IF=1,称为开
10、中断;用CLI指令使IF=0,称为关中断。系统复位后,或CPU响应了任何一种中断后,都会使IF=0。使用STI指令使IF=1,确保中断开放。可屏蔽中断源由8259A统一管理,每片8259A可以接受8个外部设备的中断请求。,31,2不可屏蔽中断NMI接收上升沿触发的中断请求信号;输入脉冲应大于两个时钟周期;CPU对NMI中断请求的响应,不受中断允许标志位IF控制;NMI中断类型码固定为2。,32,3内部中断(1)除法溢出中断(n=0):除数为零或商超过寄存器所能表达的范围。(2)单步中断(n=1):TF=1,每执行完一条指令产生一次中断。用于实现单步操作,是强有力的调试手段。(3)断点中断(n=
11、3):INT3指令产生一个中断类型码为3的断点中断。(4)INTO指令(n=4):OF=1,则INTO指令引起类型码为4的内部中断;OF=0,此指令不起作用,程序顺序执行。(5)INTn指令,33,1实模式(8086)中断向量:中断服务程序的入口地址的指示器;8086的中断向量表从内存00000H开始存放;每个中断服务程序入口地址占用4个字节;中断服务程序入口的偏移地址存入两个低地址字节,入口的段基址存入两个高地址字节;256个中断向量占用00000H003FFH共1024个字节。,6.2.2中断向量表,34,中断向量表由三部分组成。(1)中断类型号04为专用中断指针,占用0000H0013H
12、的20个字节,并且用户不能对其修改。(2)中断类型号513为保留中断指针,占用0013H007FH的108个字节,这是Intel公司保留的中断指针,用户不应使用。(3)中断类型号32255为用户使用的中断指针,占用0080H03FFH的896个字节,它可由用户指定。,35,图6-5,8086的中断向量表,CS,IP,36,37,38,AH=35HAL=中断类型INT21H把原有的中断向量送ES:BXAH=25HAL=中断类型DS:DX=中断向量INT21H把新的中断向量送中断向量表,39,2保护模式使用中断描述符表,保护模式为32位寻址。中断描述符表IDT每一表项对应一个中断向量号,表项称为中
13、断门描述符、陷阱门(单步运行)描述符。这些门描述符为8字节长,对应256个中断向量号,IDT表长为2KB。由中断描述符表寄存器IDTR来指示IDT的内存地址。以中断向量号乘以8作为访问IDT的偏移,读取相应的中断门/陷阱门描述符表项。门描述符给出中断服务子程序入口地址(段,偏移),其中32位偏移量装入EIP寄存器,16位的段值装入CS寄存器。由于此段值是选择符,还必须访问GDT或LDT,才得到段的基地址。,40,41,1.不可屏蔽中断NMI不受CPU内部中断允许标志IF的约束,优先权高于INTR;中断类型号2;采用边沿触发(上升沿)方式(1)标志寄存器压入堆栈(2)清除IF标志和TF标志(3)
14、保存断点,把断点处的CS和IP内容先后压入堆栈(4)取出中断服务程序的入口地址,送入IP和CS(5)进入中断服务程序用途:主板上RAM奇偶错,I/O通道中的奇偶校验错,8087协处理器异常中断。,6.2.38086对外部中断的响应,42,2可屏蔽中断INTR外设的中断请求首先送到8259A,按照中断优先权排队;电平触发方式,高电平有效。响应过程:第一个INTA总线周期,通知外部做好准备;第二个INTA总线周期,从外部获取中断类型号;,43,中断响应周期,2,1,44,执行总线写周期,把FLAGS压入堆栈,并清除IF,TF;执行总线写周期,把CS内容压栈;执行总线写周期,把IP内容压栈;执行总线
15、读周期,中断服务程序入口偏移地址送入IP;执行总线读周期,中断服务程序入口段基址送入CS。,45,6.3可编程中断控制器8259A,接收8路外部中断请求,通过级联可以扩展至64级;优先级排队和控制,优先级方式可选;中断嵌套功能;向CPU提供中断类型号;对每一级编程进行屏蔽或开放。,6.3.18259A的基本功能,46,DB7DB0:双向三态数据总线;IR7IR0:外设向8259A发出的中断请求信号,输入。A0:地址线,输入,用于选择内部端口。CS#:片选信号,输入、低电平有效。RD#:读信号,输入、低电平有效。WR#:写信号,输入、低电平有效。INTA#:中断响应信号,输入、低电平有效。INT
16、:中断请求信号,输出、高电平有效。CAS2CAS0:双向的级联线,这三条信号是8259A级连时构成8259A的主从式级连结构。SP/EN:主从设备设定/缓冲器读写控制,双向双功能,6.3.28259A引脚及内部结构,47,图6-6,8259A引脚,48,图6-7,8259A的内部结构,49,1.中断请求寄存器IRR锁存外部设备送来的IR7IR0中断请求信号;中断请求线变为高电平时,IRR中与之对应的一位被置1;寄存器的内容可以被CPU读出。2.中断屏蔽寄存器IMR记录对每一级中断的屏蔽信号;置1时,对应的外部中断请求线被屏蔽;设置IMR起到改变中断请求优先级的效果。,8259A的内部结构,50
17、,3.中断服务状态寄存器ISR记录当前正在被服务的所有中断级;CPU响应IRi中断请求,ISR中对应第i位置1;中断处理结束前,要使用指令清除这一位;寄存器可以被CPU读出。4.优先级处理器识别和管理各中断请求信号的优先级别;多个中断请求信号同时出现时,优先权处理器根据控制逻辑规定的优先级规则和IMR的内容来判断这些请求信号的最高优先级。,51,5控制逻辑初始化命令字寄存器ICW1ICW4:在系统初始化时置入,工作过程中保持不变。操作命令字寄存器OCW1OCW3:工作过程中根据需要设定。6数据总线缓冲器8位的双向三态缓冲器,是8259A与系统数据总线的接口。,52,7读/写控制逻辑接收、执行C
18、PU的读/写命令。8级联缓冲/比较器在级联方式的主/从结构中,用来控制8259A的级联。缓冲器:SP/EN输出低电平时,开启双向缓冲器。级联比较器:主8259A:用CAS2CAS0输出被选中从片代码;从8259A:接收主器件送来的从片选择代码,53,18259A的工作过程(1)中断源在IR0IR7上产生中断请求;(2)中断请求被锁存,经IMR“屏蔽”,送优先权电路判优;(3)控制逻辑接收中断请求,向CPU输出INT信号;(4)CPU接受8259A的INT信号,进入连续两个INTA周期。(5)优先级电路将最高优级权对应ISR中的位置位;(6)第二个INTA周期8259把中断类型号输出到数据总线;
19、,6.3.38259A的工作方式,54,该中断类型码的生成:,(7)CPU读取中断类型号,转移到相应的中断处理程序。(8)中断处理结束前,向8259A发送EOI(中断结束)命令,使ISR相应位复位,本次中断到此结束。,55,28259A的优先权管理(1)固定优先级中断源的优先级由它所连接的引脚编号决定;1)全嵌套方式:中断优先权级别固定,IR0优先权最高,IR7最低。一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。单片使用。,56,2)特殊全嵌套:接收同一引脚上的第二次中断请求。一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊全
20、嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。,57,D.,主8259A,IR0IR1IR2IR3IR4IR5IR6IR7,一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应,特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本从片封锁),C.,假定IR3发生中断,并获得服务,一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。,B.,特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。,A.,INT,E.,从8259A,INT,IR0IR1IR2IR3IR
21、4IR5IR6IR7,一般全嵌套方式与特殊全嵌套方式的区别,去CPU,58,普通全嵌套方式(默认方式)一中断正被处理时,只有更高优先级的事件可以打断当前的中断处理过程而被服务。特殊全嵌套方式一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。注:特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。,59,(2)循环优先级各个中断申请具有大体相同的优先级;有优先权自动循环方式和优先权特殊循环方式。,中断源轮流处于最高优先级,即自动中断优先级循环初始优先级顺序可用编程改变某中断请求IRi被处理后,其优先级别自动降为最低,原来比
22、它低一级的中断上升为最高级,60,3.中断屏蔽方式(1)普通屏蔽方式通过将中断屏蔽字写入IMR实现;写入某位为“1”,对应的中断请求被屏蔽;为“0”开放。(2)特殊屏蔽方式提供了允许较低优先级的中断能够得到响应的特殊手段。例如:假定当前正在处理IR6,先进入特殊屏蔽方式,然后设置IM6=1。这时,除IR6外的所有中断请求均能得到响应。采用特殊屏蔽方式并用屏蔽字对IMR中某一位置“1”,会同时使ISR中对应位清“0”。对屏蔽位的设置部分地改变了中断优先权。,61,4.中断结束方式中断结束命令(EOI):当某一IRi中断被服务时,ISR中的相应位ISRi=1。当服务结束后,则必须清零该ISRi位。
23、使ISRi=0是通过向8259A发出中断结束命令(EOI命令)实现的。(1)自动中断结束方式(AEOI)8259A在第二个中断响应周期INTA信号的后沿,自动将ISR中被响应中断级的对应位清“0”。(2)非自动中断结束方式(EOI)从中断服务程序返回前,在程序里向8259A输出一个中断结束命令(EOI),把ISR对应位清“0”。一般的中断结束方式:由8259A自动选择优先权最高的位。特殊的中断结束命令:指令内指明要清除ISR中的某一位。,62,注意!在非自动中断结束方式下,如果在程序里忘了发送中断结束命令,那么,8259A将不再响应这个中断以及比它级别低的中断请求。,63,5.8259A查询工
24、作方式工作在程序查询方式时,8259A不向CPU发INT信号;CPU通过查询8259A了解有无中断;如果有中断发生,转入相应的服务程序。设置查询方式的过程:关闭中断;用输出指令把“查询方式命令字”送到8259A;对8259A执行一条输入指令,读取查询字查询字格式为:IXXXXW2WlW0(8bit)I=1,有中断请求,W2WlW0为最高优先级编码。,64,初始化命令字:在系统初始化时写入;用来设定8259的基本工作方式。操作命令字:在初始化后的任何时刻写入8259A;用来动态地控制8259A的操作。,6.3.48259A的编程,需要访问8259A内部寄存器!,65,需要CS#(地址译码结果)、
25、A0、RD#(-IOR)、WR#(-IOW)和8位中的数据D4、D3的配合内部寄存器的访问方法如下表:,66,8259的初始化流程图注意次序不可颠倒,67,图6-8,1.初始化命令字ICW(8bit数据),(1)初始化命令字ICW1,(PC中端口地址为20H),68,LTIM:触发方式=1高电平触发=0上升沿触发SNGL:级连控制=1单片=0级连IC4:ICW4控制=1要写ICW4=0不写ICW4(默认ICW4为全0),69,注意!向8259A送入一条A0=0、D41的命令(ICW1):启动8259A的初始化过程,相当于RESET信号的作用,自动完成下列操作:清除中断屏蔽寄存器IMR;设置以I
26、R0为最高优先级,IR7为最低优先级的全嵌套方式;固定中断优先权排序。,70,图6-9,(2)初始化命令字ICW2(8bit数据),(PC中端口地址为21H),71,T7T3:中断向量码的高5位T2T0:最低3位为中断源的序号IRn000111分别对应IR0IR7由8259A根据中断源的序号自动填入例如:若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。,72,图6-10,(3)初始化命令字ICW3(主片,8bit数据),(PC中端口地址为21H),73,图6-11,(3)初始化命令字ICW3(从片,8bit数据),(PC中端口地址为21H),74,主片
27、的级联控制字Si=1对应IRi线上连接了从片,A0D7D6D5D4D3D2D1D01S7S6S5S4S3S2S1S0,从片的级联控制字ID2ID0标识码,说明本从片连接到主片的哪个IR引脚上。000111分别对应IR0IR7。,A0D7D6D5D4D3D2D1D0100000ID2ID1ID0,75,ICW3必须与主从片的连接关系一致:例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。,76,图6-12
28、,(4)初始化命令字ICW4(8bit数据),(PC中端口地址为21H),77,(5)8259A初始化按以下顺序对8259A初始化:单片8259A:ICW1、ICW2、ICW4级联方式:ICW1、ICW2、ICW3、ICW4注意:级联方式下,每一片8259A都要独立地按上面顺序写入初始化命令字。,78,单片工作,边沿触发,全嵌套;中断类型08H0FH,端口地址20H,21H;非缓冲方式,非中断自动结束,非特殊全嵌套方式;初始化程序:MOVAL,00010011BOUT20H,AL;ICW1:单片,边沿触发MOVAL,00001000BOUT21H,AL;ICW2:中断类型08H0FHMOVAL
29、,00000001BOUT21H,AL;ICW4:非中断自动结束,IBM-PC微型计算机内8259A的工作方式,79,例:二片8259A进行级联,边沿触发,非缓冲方式,非自动中断结束,CAS0CAS2互连。,从片,主片,80,主片初始化程序:MOVAL,00010001BOUT20H,AL;ICW1:边沿触发,级联MOVAL,00001000BOUT21H,AL;ICW2:中断类型08H0FHMOVAL,00000100BOUT21H,AL;ICW3:IR2连有从片MOVAL,00010001B;ICW4:特殊全嵌套,非缓冲OUT21H,AL;ICW4:非自动中断结束,81,从片初始化程序:M
30、OVAL,00010001BOUT0A0H,AL;ICW1:边沿触发,级联MOVAL,01110000BOUT0A1H,AL;ICW2:中断类型70H77HMOVAL,00000010BOUT0A1H,AL;ICW3:INT引脚连主片IR2MOVAL,00000001B;ICW4:非自动中断结束OUT0A1H,AL;ICW4:非特殊全嵌套,非缓冲,82,2操作命令字OCW对8259A预置完毕后:8259A进入设定的工作状态;准备接收由IR输入的中断请求信号;按固定优先级(缺省方式)来管理中断请求。运行中可以写入操作控制字,对8259A管理中断的方式进行修改和设定。有OCW1、OCW2和OCW3
31、三个操作控制字;OCW按需要选择写入,没有固定顺序。写入地址要求:OCW1必须写入奇地址端口(A0=1)OCW2,OCW3必须写入偶地址端口(A0=0),83,图6-14,(1)操作控制字OCWl(8bit数据),(PC中端口地址为21H),84,例:需要屏蔽IR4的中断输入,同时不改变其他中断输入的屏蔽状态,可以用如下的三条指令实现:INAL,21H;取屏蔽寄存器当前值ORAL,00010000B;将D4位置1OUT21H,AL;写回改变后的屏蔽字需要清除对IR2的中断屏蔽:INAL,21H;取屏蔽寄存器当前值ANDAL,11111011B;将D2位清0OUT21H,AL;写回改变后的屏蔽字
32、,操作控制字OCW1应用,85,图6-15,(2)操作控制字OCW2(8bit数据),(PC中端口地址为20H),用于中断结束和优先级循环,86,A0D7D6D5D4D3D2D1D00RSLEOI00L2L1L0,L2L0:优先级编码R:优先级自动循环SL:指定优先级EOI:结束中断命令RSLEOI001非指定EOI命令(NSEOI),全嵌套方式011指定EOI命令(SEOI),全嵌套方式,按L2-L0编码复位ISR101NSEOI命令,优先级自动循环100自动EOI,设置优先级自动循环000自动EOI,取消优先级自动循环(固定优先级)111SEOI命令,按L2-L0编码循环优先级(L2-L0
33、设为最低优先级)110按L2-L0编码循环优先级(L2-L0设为最低优先级),87,AEOI:在第2个INTA#结束时,由8259A使ISRi自动复位;因不保留当前正在服务的中断的状态,故AEOI不能用于中断嵌套方式SEOI:由CPU(程序中的指令)发出一条SEOI命令,该EOI命令中指出了所要复位的ISR的位号。用于特殊屏蔽方式NSEOI:由CPU发出正常EOI命令,该EOI命令使ISRi=1的位中优先级最高的那一位复位。用于普通全嵌套方式,自动EOI(AEOI)(自动EOI方式)非指定EOI(NSEOI)(正常EOI方式)指定EOI(SEOI)(特殊EOI方式),88,一般的中断结束命令:
34、MOVAL,20HOUT20H,AL,操作控制字OCW2应用,89,图6-16,(3)操作控制字OCW3,90,OCW3用途:设置/清除特殊屏蔽命令发出读寄存器命令:设置RR=1,RIS=0后,用IN指令读偶端口,可以将IRR读入CPU。设置RR=1,RIS=1后,用IN指令读偶端口,可以将ISR读入CPU。,操作控制字OCW3应用,91,发出查询命令;设置(D2)P=1后,用IN指令读偶端口,可以将中断查询字读入CPU:IXXXXW2WlW0(8bit)I=1表示有中断请求,W2WlW0表示请求服务的最高优先级编码。,操作控制字OCW3应用,92,注意:设置了P=1的查询命令后,8259A不
35、再通过INT引脚向CPU发送中断请求。要取消查询方式,可以再次发出OCW3,并使P=0。,93,例:BIOS中读取ISR寄存器的程序段:MOVAL,00001011B;OCW3命令字(读ISR)OUT20H,AL;写入OCW3端口NOP;延时INAL,20H;将ISR内容送入ALMOVAH,AL;将ISR内容转存入AHORAL,AH;是全0否?JNZAW-INT;否,转硬件中断程序,操作控制字OCW3应用,94,6.4中断方式输入输出,6.4.1中断方式I/O接口中断方式输入过程:外部设备输入数据;中断请求触发器置位;接口向CPU申请中断;CPU响应中断,中断请求触发器被复位;CPU在中断服务
36、程序中读取数据。,95,产生中断申请信号的单元,96,图6-17,中断方式输入接口,97,中断屏蔽触发器的作用:控制外设接口的中断请求信号能否发送给CPU。中断屏蔽触发器可以看作该接口控制寄存器的一位图6-17是不完整的:没有给出中断屏蔽触发器的写入电路;解决中断优先权的电路;向CPU发送中断类型号的电路。,98,图6-18,99,中断方式下,完整的输入输出程序应由二个程序模块配合完成:主程序:完成输入输出所需要的“初始化”工作和结束工作;中断服务程序:完成数据传输和输入输出控制工作。,6.4.2中断方式输入输出程序设计,100,前后台程序流程,101,1.主程序设计(1)CPU初始化:设置堆
37、栈,设置中断向量,开放中断。(2)中断控制器8259A的初始化:选择工作方式,设置优先级、清除屏蔽位等。(3)接口的初始化:设置接口工作方式,设置中断开放位等。(4)中断服务程序的初始化:设置中断服务程序使用的缓冲区指针,计数器,状态位等。注意:中断服务程序的指针、计数器、状态位等只能存放在内存单元。对于输出过程,应在主程序中启动第一次输出。输入输出完成之后,主程序要根据需要做好结束工作。如:处理输入的数据,关闭中断等。,102,2.中断服务程序设计保护现场:把所有中断服务程序里使用、会改变值的寄存器压入堆栈。开放中断:允许CPU响应优先级更高、更紧急的中断。输入输出处理过程。关闭中断:关闭中
38、断可以避免不必要的中断嵌套,发EOI命令。恢复现场:按照“先进后出”的原则,恢复各寄存器的内容。中断返回:用IRET指令返回被中断的程序。,103,中断服务程序应注意的几个问题:中断服务程序要短小精悍,运行时间短,执行一次中断服务程序的时间要大大少于二次中断的时间间隔。对于耗费时间多的数据处理工作,应交由主程序完成。一般的情况下,应避免在中断服务程序内进行DOS功能调用。那样做,可能产生这些程序的“重入”。DOS功能调用程序不具备重入功能,会产生难以预料的结果。需要进行控制台IO操作可以使用BIOS调用。在输入输出处理完成后,一定要向8259A发送中断结束命令(EOI)。如果是级联的8259A
39、的从片上的中断,则需要向主片和从片分别发送中断结束命令。否则,该设备的下一次中断就不能被响应,比它级别低的中断从此也不能被响应。,104,一个完整的中断方式输入程序设:数据端口地址为240H使用8259A的IR3引脚申请中断,中断类型0BH8259A端口地址为20H,21H输入以“回车”字符表示结束。,6.4.3中断方式应用(自学),105,DATASEGMENTIN_BUFFERDB100DUP(?);接收缓冲区,假设一次输入不超过100字节IN_POINTERDW?;接收缓冲区指针DONEDB0;完成标志,=1表示输入已完成DATAENDS,数据段定义,106,CODESEGMENTASS
40、UMECS:CODE,DS:DATABEGIN:MOVAX,SEGIN_INTR;IN_INTR是中断服务程序入口MOVDS,AXLEADX,IN_INTRMOVAX,250BH;AH中为功能号,AL中为中断类型INT21H;装载0BH中断向量MOVAX,DATAMOVDS,AX;装载数据段段基址,主程序(1),107,MOVIN_POINTER,OFFSETIN_BUFFER;设置指针初值MOVDONE,0;设置完成标志为“未完成”INAL,21HANDAL,11110111BOUT21H,AL;清除IR3的屏蔽位STI;开放中断W:CMPDONE,0JZW;等待完成.;结束处理MOVAX,
41、4C00HINT21H,主程序(2),108,IN_INTRPROCFARPUSHDS;保护现场PUSHAXPUSHBXPUSHDXSTI;开放中断,允许响应更高级中断MOVAX,DATAMOVDS,AX;在中断服务程序中重新装载DS寄存器MOVBX,IN_POINTER;装载缓冲区指针MOVDX,240H,输入中断服务程序(1),109,INAL,DX;从输入设备读取一个数据,同时清除中断请求MOVBX,AL;数据存入缓冲区INCBXMOVIN_POINTER,BX;修改指针,存入内存单元CMPAL,0DH;判输入是否结束JNEEXITINAL,21HORAL,00001000B;输入结束,
42、置IR3屏蔽位OUT21H,ALMOVDONE,1;置完成标志,输入中断服务程序(2),110,EXIT:CLI;关闭中断,准备中断返回MOVAL,20HOUT20H,AL;向8259发中断结束命令POPDX;恢复现场POPBXPOPAXPOPDSIRET;中断返回IN_INTRENDPCODEENDSENDBEGIN,输入中断服务程序(3),111,一8259A在PC/AT微型计算机中的应用二8259A在80386微机系统中的应用,6.58259A在PC系统中的应用,112,IBMPC/AT微型计算机系统的CPU采用80286芯片,系统中有两个8259A芯片(如图所示)。若设置8259A按特
43、殊的完全嵌套方式工作,则系统中优先权从最高至最低的排列顺序是:主片IRQ0、IRQ1、从片IRQ0、IRQ1至IRQ7、主片IRQ3至IRQ7。,6.5.18259A在PC/AT微型计算机中的应用(补充,不考试),113,114,80386系统微机采用82C206作为中断控制器。82C206芯片实际上是将两个级连的8259A与8237等芯片集成在一起。82C206内部INTC1及INTC2的级连情况如图所示。82C206中断控制器的中断源安排如表所示。,6.5.28259A在80386微机系统中的应用(补充,不考试),115,82C206中断控制器内部级,116,82C206中断控制器的中断源安排,117,6.6现代微机中断控制p323-325,在中心结构的微机系统中,处理器以外的中断管理功能由I/O控制中心芯片完成。在芯片内部集成了两片8259,此外还设计了新的中断管理:串行中断(PCI总线设备中断管理),用于允许1个以上的设备共享单个的IRQ。,118,11
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林下食用菌仿野生种植管护技师考试试卷及答案
- 2025年南阳唐河县国有企业招聘工作人员15名笔试历年参考题库附带答案详解
- 2025年东丰鹿业投资发展(集团)有限公司及下属子公司公开招聘工作人员(8人)笔试历年参考题库附带答案详解
- 2025山西临汾市浮山县鑫盛粮食购销有限责任公司招聘2人笔试历年参考题库附带答案详解
- 2025山东济南二机床集团(平阴)产业园有限公司招聘9人笔试历年参考题库附带答案详解
- 2025国家能源投资集团有限责任公司审计中心社会招聘(12人)笔试历年参考题库附带答案详解
- 2025四川长九光电科技有限责任公司招聘系统总体工程师等岗位20人笔试历年参考题库附带答案详解
- 2025四川泸州市高新投资集团有限公司实习生招聘11人笔试历年参考题库附带答案详解
- 2025四川九洲投资控股集团有限公司软件与数据智能军团招聘行业经理等13人笔试历年参考题库附带答案详解
- 2025内蒙古星光煤炭集团有限责任公司招聘13人笔试历年参考题库附带答案详解
- T∕CAMDA 36-2026 双孢蘑菇采摘机器人
- 二十届四中全会模拟100题(带答案)
- 吾悦广场内部管理制度
- 2026年苏教版二年级科学下册(全册)教学设计(附教材目录)
- 腾讯收购案例分析
- 污水厂运营夜班制度规定
- 2026年就业市场:挑战与机遇并存高校毕业生就业指导与策略
- 医疗广告审查标准与医美宣传红线
- 袖阀管注浆地基加固规范方案
- 2026年建筑智能化对电气节能的推动
- 精美护士礼仪培训
评论
0/150
提交评论