微机原理与接口技术——中断系统.pptx

上传人:莉*** 文档编号:80056957 上传时间:2023-03-22 格式:PPTX 页数:146 大小:1.27MB
返回 下载 相关 举报
微机原理与接口技术——中断系统.pptx_第1页
第1页 / 共146页
微机原理与接口技术——中断系统.pptx_第2页
第2页 / 共146页
点击查看更多>>
资源描述

《微机原理与接口技术——中断系统.pptx》由会员分享,可在线阅读,更多相关《微机原理与接口技术——中断系统.pptx(146页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1掌握:中断的基本概念中断响应的一般过程中断向量表及其初始化8088/8086中断系统可编程中断控制器8259A中断调用第1页/共146页2一、中断的基本概念中断:CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。第2页/共146页3中断源引起CPU中断的事件,发出中断请求的来源。内部中断内部中断外部中断外部中断异常中断异常中断软件中断软件中断可屏蔽中断可屏蔽中断非屏蔽中断非屏蔽中断异常事件引起异常事件引起中断指令引起

2、中断指令引起INTR中断中断NMI中断中断第3页/共146页4引入中断的原因提高数据传输率;避免了CPU不断检测外设状态的过程,提高了CPU的利用率。实现对特殊事件的实时响应。第4页/共146页5中断系统正确识别中断请求,实现中断响应、中断处理及中断返回;实现中断优先级排队;实现中断嵌套中断系统是指实现中断功能的软硬件的统称。功能有:第5页/共146页中断系统的功能 实现中断及返回 中断源发出中断请求,CPU决定是否响应:若响应,则保护断点和现场,转入相应中断服务程序,中断服务结束后,恢复现场和断点,继续执行原程序。CPU执行中断服务程序1非预料事件16第6页/共146页非非预预料料事事件件是

3、是指指事事件件发发生生的的时时间间无无法法预预知知,即即中中断源何时产生中断不确定,是随机的。断源何时产生中断不确定,是随机的。中中断断源源产产生生中中断断的的随随机机性性,使使中中断断服服务务程程序序的的执执行行也也具具有有随随机机性性,即即何何时时执执行行中中断断服服务务程程序序不不是是在在程程序序中安排好的。中安排好的。中断系统的功能(续)7第7页/共146页 实现优先权排队按各中断请求的重要程度排列CPU响应的次序称为中断优先级。即同时有多个中断请求到来时,CPU会首先响应和处理优先级别最高的中断请求。中断优先级的实现可以用软件或硬件的办法。中断系统的功能(续)8第8页/共146页实现

4、中断嵌套:当CPU在处理某一级中断时,若有高一级的中断请求,中断系统应能安排CUP暂时停止现行的中断处理,响应高一级的中断中断系统的功能(续)9第9页/共146页10二、外部中断响应的一般过程中断请求中断源识别及中断判优中断响应中断处理(服务)中断返回第10页/共146页11中断请求中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。NMI(非屏蔽中断)(非屏蔽中断)INTR(可屏蔽中断)(可屏蔽中断)第11页/共146页12中断源识别软件查询法中断矢量法由中断源提供中断类型号,CPU根据类型确定中断源。中断源识别及判优由硬件系统完成中断源识别及判优由硬件系统完成第1

5、2页/共146页13中断判优当有多个中断源同时提出请求时,需要确定首先响应哪一个中断源。优先级法则低优先级的中断程序允许被高优先级的中断源所中断排队法则先来先响应中断嵌套中断嵌套第13页/共146页14中断判优软件判优顺序查询中断请求,先查询的先服务即先查询的优先级别高硬件判优链式判优、并行判优(中断向量法)第14页/共146页15中断响应向中断源发出INTA中断响应信号;关中断保护硬件现场将FLAGS压入堆栈保护断点将CS、IP压入堆栈获得中断服务程序入口地址由由硬硬件件系系统统完完成成第15页/共146页16中断处理保护现场执行中断服务程序恢复现场中断服务程序的特点:为“远过程”用IRET

6、指令返回第16页/共146页17中断服务子程序完成的工作关中断,保护现场,保护断点,找入口地址保护软件现场(参数)开中断(STI)中断处理关中断(CLI)恢复现场中断返回第17页/共146页18中断返回执行IRET指令,使IP、CS和FLAGS从堆栈弹出如要实现中断嵌套,则在保护现场后,要执行开中断指令恢复断点和硬件现场恢复断点和硬件现场第18页/共146页中断处理过程流程19第19页/共146页当前CPU正在进行某一优先权级别的中断源的处理;有更高级别的中断源发出请求,且新中断源满足响应条件;CPU中止当前的中断服务程序,保护断点和现场,转而响应高级中断这种多级中断的处理方式即为“嵌套”。某

7、些中断系统对中断嵌套的层数有一定限制。中断嵌套20第20页/共146页高级中断源能中断低级的中断处理当CPU正在处理某个中断时,如果外部又有一个优先级别比本优先级别更高的中断请求,则可以实现中断嵌套。21中断嵌套第21页/共146页CPU正常执行正常执行中断服务程序中断服务程序1非预料事件非预料事件1中断服务程序中断服务程序2非预料事件非预料事件2中断嵌套示意图22第22页/共146页中断服务程序(用户自行编制):保护现场:保存CPU内部各寄存器的内容,以便在服务程序中使用;开总中断:将IF置1,使CPU在中断服务期间仍能响应更高级的INTR请求;具体处理:用户的中断服务关总中断:将IF位清0

8、;恢复现场:将入栈保护的各寄存器内容依次弹出;中断返回:执行IRET指令,CPU将自动弹出给IP、CS、FLAGS,就可以接着执行被中断的原程序;开总中断:再次将IF位置1,使返回后能够重新响应23第23页/共146页247.2 8086中断系统内部中断外部中断异常中断异常中断软件中断软件中断非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断256个中个中断源断源除法错中断除法错中断溢出中断溢出中断单步中断单步中断 第24页/共146页 根据根据8086内部的中断逻辑电路,各种中断源的优先权顺序为:内部的中断逻辑电路,各种中断源的优先权顺序为:被被0除中断除中断软件中断软件中断INTO NMI INTR

9、 单步中断。单步中断。CPU内的中断逻辑内的中断逻辑NMI自动产生的中断自动产生的中断除法错除法错单步(单步(TF=1)软件中断软件中断INT nINTOCPUCPU内部内部8259AINTRIRQ1键盘键盘IRQ2彩色彩色/图形接口图形接口IRQ3保留保留(串口串口)IRQ4 串口串口IRQ5保留保留(LPT)(LPT)IRQ0系统定时器系统定时器IRQ7 LPTLPTIRQ6软盘软盘8086中断系统25第25页/共146页中断类型码、中断向量表和中断向量中断类型码:8086可以处理256个中断请求,每个中断请求均对应于惟一固定的类型码。被0除类型码是0,单步为1;NMI为2;断点中断为3,

10、溢出中断为4 等。中断向量:即中断服务程序的入口地址,包括段地址(高字单元)和偏移地址(低字单元)。中断向量表:存放中断向量的表,位于内存空间的最低地址单元,长1KB。共可容纳256个中断向量(25641024)。26第26页/共146页中断类型码一、中断类型码:8086可以处理256个中断请求。每个中断请求均对应于唯一固定的类型码。被0除类型码是0,单步为1;NMI为2;断点中断为3,溢出中断为4;等。类型类型码码中断源中断源类型码类型码中断源中断源类型码类型码中断源中断源00H 被被0 0除除0FH并口并口1 1(打印机)(打印机)中断中断1EH 磁盘参数磁盘参数01H 单步中断单步中断1

11、0H显示器驱动程序显示器驱动程序1FH图形字符集图形字符集02H NMINMI11H设备检测设备检测20H程序结束程序结束03H 断点中断断点中断12H存储器检测存储器检测21HDOSDOS系统调用系统调用27第27页/共146页IBM PC/XT中断源的功能类型码类型码中断源中断源类型码类型码中断源中断源类型码类型码中断源中断源00H被被0除除0FH并口并口1(打印机)中断(打印机)中断1EH磁盘参数磁盘参数01H单步中断单步中断10H显示器驱动程序显示器驱动程序1FH图形字符集图形字符集02HNMI11H设备检测设备检测20H程序结束程序结束03H断点中断断点中断12H存储器检测存储器检测

12、21HDOS系统调用系统调用04H溢出中断溢出中断13H软盘驱动程序软盘驱动程序22H结束地址结束地址05H打印屏幕打印屏幕14H通信驱动程序通信驱动程序23HCtrl-Break夭折键处理夭折键处理06H(保留)(保留)15H盒式磁带机驱动程序盒式磁带机驱动程序24H关键性错误处理关键性错误处理07H(保留)(保留)16H硬盘驱动程序硬盘驱动程序25H磁盘顺序读磁盘顺序读08H定时中断定时中断17H打印机驱动程序打印机驱动程序26H磁盘顺序写磁盘顺序写09H键盘中断键盘中断18HBASIC程序程序27H程序结束且驻留内存程序结束且驻留内存0AH保留的硬件中断保留的硬件中断19H引导(引导(B

13、OOT)程序)程序28HDOS内部使用内部使用0BH异步串口异步串口2中断中断1AH年月日定时中断年月日定时中断292EHDOS保留使用保留使用0CH异步串口异步串口1中断中断1BH用户键盘用户键盘2FHDOS内部使用内部使用0DH并口并口2(硬磁盘)中断(硬磁盘)中断1CH用户定时器时标用户定时器时标303FHDOS保留使用保留使用0EH软盘中断软盘中断1DHCRT初始化参数初始化参数40FFH用户自定义用户自定义INTRINTRBIOSBIOS可调用可调用DOSDOS可调用可调用28第28页/共146页1、非屏蔽中断(NMI):不受中断标志位的控制,中断类型号为2,所以中断向量放在0000

14、:0008开始的4个单元中。NMI中断一般用于紧急情况的处理,不受中断标志位IF影响。2、可屏蔽中断(INTR):受中断标志位的控制,IF=1,CPU才能响应INTR中断。CPU响应INTR中断时,往INTA引脚上发两个负脉冲,外设接到第二个负脉冲后,立即往数据总线上送出中断类型码,供CPU读取。1、外部中断硬件中断29第29页/共146页外部中断源的管理 多个外部硬件中断源共用一条INTR线时,要在程序中采取一定措施或用外部硬件解决中断源的优先权排列和多级中断的嵌套等。中断优先权(优先级):中断优先权就是为每个中断源所确定的响应级别。软件排序:CPU响应中断后,在程序中用查询的方法判定外设的

15、中断请求。31第31页/共146页外部中断源的管理软件查询排序的特点是:查询次序即优先权排序,最先被询问的故障具有最高优先级;节省硬件;修改方便,只要改变程序中的查询次序即可;由询问转至真正的服务程序入口时间长,在中断源较多的情况下执行速度较慢。硬件排序:采用优先权的编码电路,对各种外部硬中断进行排队。还有菊花链式硬件排序电路,以及中断控制集成芯片8259A32第32页/共146页332、内部中断软件中断内部中断指由指令的执行或软件对标志寄存器中某个标志的设置产生的中断专用中断指令中断第33页/共146页内部中断的种类(1)除法出错中断 类型号为00H 除法出错中断既不是外部硬件产生,也不是用

16、软件指令产生,而是CPU自身产生的,因此0型中断没有对应的中断指令,即指令系统中没有INT 0这条指令。34第34页/共146页35 对单步中断要注意三点:一、所有类型的中断在其处理过程中,CPU会自动地把标志寄存器FLAGS压入堆栈,然后清除TF和IF。因此当CPU进入单步中断处理程序时,就不再处于单步工作方式,而以正常方式工作。只有在单步处理结束时,从堆栈中弹出原来的标志,才能使CPU又回到单步方式。(IF=1,TF=1)二、通常程序编制好后,在DEBUG调试程序时可使用单步中断检查程序,是通过跟踪命令TF来实现单步运行。(2)单步中断(陷阱中断)类型号为01H第35页/共146页36三、

17、8086/8088指令系统中没有设置或清除TF标志的指令,但指令系统中的PUSHF和POPF为程序员提供了置位或复位TF的手段。置位和复位TF的程序段如下所示:(2)单步中断(陷阱中断)类型号为01H内部中断的种类第36页/共146页置位TF标志(D8=1)PUSHFPOP AXOR AX,0100HPUSH AXPOPF;复位TF标志PUSHFPOP AXAND AX,0FEFFHPUSH AXPOPF(2)单步中断(陷阱中断)类型号为01H37内部中断的种类第37页/共146页38(3)断点中断 类型号为03H 设置断点实际上是把一条断点指令INT 3插入程序中,CPU每执行到断点处的IN

18、T 3指令便产生一个中断。(4)溢出中断 类型号为04H 在执行溢出中断指令INTO时,若标志寄存器FLAGS中的溢出标志OF=1,则产生一个类型号为4的内部中断,称为溢出中断。内部中断的种类第38页/共146页 对对带带符符号号数数来来说说,溢溢出出就就意意味味着着出出错错(加加、减减运运算算),一一旦旦产产生生应应立立即即发发现现,而而CPU并并不不知知道道当当前前处处理理的的数数据是无符号数还是带符号数,只有程序员才明确这一点。据是无符号数还是带符号数,只有程序员才明确这一点。因因此此通通常常在在带带符符号号数数的的加加、减减法法运运算算后后面面总总是是跟跟着着INTO指令指令39(4)

19、溢出中断 类型号为04H第39页/共146页40如下面的指令用来测试加法的溢出:ADD AX,VALUINTO当当标标志志寄寄存存器器的的OF=0时时,则则INTO指指令令不不产产生生中中断断,CPU继继续运行原程序;续运行原程序;当当OF=1时时,进进入入溢溢出出中中断断处处理理程程序序,打打印印出出一一个个出出错错信信息息,在在处处理理程程序序结结束束时时,不不返返回回原原程程序序继继续续运运行行,而而是是把把控控制制交交给操作系统。给操作系统。(4)溢出中断 类型号为04H第40页/共146页41(5)指令中断 在8086/8088的指令系统中,当CPU执行中断指令INT n时,也能形成

20、内部中断,其中n在理论上可取值0255。当n0、1、3、4时,就是上述的四种内部中断。内部中断的种类第41页/共146页内部中断的特点(1)除单步中断以外,所有内部中断都不能被屏蔽。(2)所有内部中断不从外部接口中读取中断类型号也不发送中断响应信号,即不执行中断响应的总线周期。(3)指令中断没有随机性,外中断是随机性的。指令中断是由程序中指令引起的,指令位置事先已知。外中断是随机性的,由I/O设备引起,何时引起事先未知。42第42页/共146页43(4)除单步中断外,所有内部中断的优先权都比外部中断的优先权高。内部中断的特点 8086中断的优先级别:内部中断(单内部中断(单步中断除外)步中断除

21、外)非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断单步中断单步中断第43页/共146页IBM PC/XT中断源的功能类型码类型码中断源中断源类型码类型码中断源中断源类型码类型码中断源中断源00H被被0除除0FH并口并口1(打印机)中断(打印机)中断1EH磁盘参数磁盘参数01H单步中断单步中断10H显示器驱动程序显示器驱动程序1FH图形字符集图形字符集02HNMI11H设备检测设备检测20H程序结束程序结束03H断点中断断点中断12H存储器检测存储器检测21HDOS系统调用系统调用04H溢出中断溢出中断13H软盘驱动程序软盘驱动程序22H结束地址结束地址05H打印屏幕打印屏幕14H通信驱动程序通信驱动

22、程序23HCtrl-Break夭折键处理夭折键处理06H(保留)(保留)15H盒式磁带机驱动程序盒式磁带机驱动程序24H关键性错误处理关键性错误处理07H(保留)(保留)16H硬盘驱动程序硬盘驱动程序25H磁盘顺序读磁盘顺序读08H定时中断定时中断17H打印机驱动程序打印机驱动程序26H磁盘顺序写磁盘顺序写09H键盘中断键盘中断18HBASIC程序程序27H程序结束且驻留内存程序结束且驻留内存0AH保留的硬件中断保留的硬件中断19H引导(引导(BOOT)程序)程序28HDOS内部使用内部使用0BH异步串口异步串口2中断中断1AH年月日定时中断年月日定时中断292EHDOS保留使用保留使用0CH

23、异步串口异步串口1中断中断1BH用户键盘用户键盘2FHDOS内部使用内部使用0DH并口并口2(硬磁盘)中断(硬磁盘)中断1CH用户定时器时标用户定时器时标303FHDOS保留使用保留使用0EH软盘中断软盘中断1DHCRT初始化参数初始化参数40FFH用户自定义用户自定义INTRINTRBIOSBIOS可调用可调用DOSDOS可调用可调用44第44页/共146页中断向量和中断向量表一、中断向量:中断服务程序的入口地址,包括段地址(CS,存放于高4字节单元)和偏移地址(IP,存放于低4字节单元)。二、中断向量表:存放中断向量的表格。位于内存空间的最低地址,长度1KB,可容纳256类中断向量(256

24、41024)。中断号与中断服务程序入口地址的连接表45第45页/共146页中断向量和中断向量表46第46页/共146页47中断向量表的初始化将用户自定义的中断服务程序入口地址放入向量表注意点:向量表所在的段地址=0存放子程序入口的单元的偏移地址=n4第47页/共146页中断向量的设置方法用三种方法来为中断类型N设置中断向量1)直接装入法MOV AX,00HMOV DS,AXMOV BX,N*4;中断号BXMOV AX,OFFSET NEWINT;中断服务程序偏移地址MOV WORD PTR BX,AX;装入偏移地址MOV AX,SEG NEWINT;段基址MOV WORD PTR BX+2,A

25、X;装入段基址NEWINT PROCIRETNEWINT ENDP、48第48页/共146页中断向量的设置方法2)使用串送存指令装入法CLI;关中断MOV AX,0MOV ES,AX;ES=0MOV DI,N*4;中断向量指针MOV AX,OFFSET NEWINT;偏移地址CLD;DF=0,增地址STOSW;存串指令 AXDIDI+1,再DI+2MOV AX,SEG NEWINT;段基址STOSW;存串指令 AXDI+2DI+3STI;开中断49第49页/共146页中断向量的设置方法3)使用DOS功能调用设置中断向量 设置中断向量是把由AL指定的中断类型N的中断向量DS:DX放置在中断向量表

26、中。预置:(AH)=25H 功能号 (AL)=N 中断类型号 DS:DX=中断向量执行:INT 21H例如:MOV AX,SEG NEWINTMOV DS,AXMOV DX,OFFSET NEWINTMOV AL,NMOV AH,25HINT 21H50第50页/共146页中断向量的设置方法例:利用INT21H设置中断向量MOV AH,25H;DOS功能调用号25HAHMOV AL,40H;将设置的中断类型码ALMOV DS,SEGUSERINTMOV DX,OFFSETUSERINT;入口参数:中断服务程序的入口地址DS:DXINT21H执行之后,中断服务程序的入口地址值将放入中断向量表中n

27、4处连续的4个单元中。51第51页/共146页52中断响应与处理一、内部中断响应过程 1.当内部中断发生时,或由INT n指令获得中断类型码,或是按预定方式得到中断类型码(专用中断:0、1、3、4);2.将类型码4,作为中断向量表的指针;3.FR(PSW)入栈保护;第52页/共146页534.清除IF和TF标志(0 IF、0 TF,屏蔽新的INTR中断和单步中断;5.把断点处的IP和CS值压入堆栈:先压入CS值,再压入IP值;6.取中断向量(中断服务程序的入口地址),分别送至CS和IP。按新的地址执行中断服务子程序。内部中断响应过程第53页/共146页54内部中断的特点:内部中断的特点:1进进

28、入入中中断断时时,不不需需要要执执行行中中断断响响应应周周期期去去获获得得中中断类型码。断类型码。2除除单单步步中中断断外外,内内部部中中断断无无法法用用软软件件禁禁止止,不不受受IF的影响。的影响。3内内部部中中断断没没有有随随机机性性,由由指指令令在在程程序序中中的的位位置置决决定。定。4除单步中断外,内部中断优先级高于硬件中断。除单步中断外,内部中断优先级高于硬件中断。内部中断响应过程第54页/共146页外部中断响应过程1.非屏蔽中断非屏蔽中断NMI的响应的响应 中断类型码为中断类型码为2。当当NMI发生时,发生时,CPU在执行完当前指令后,转去在执行完当前指令后,转去中断类型码为中断类

29、型码为2的中断服务子程序。的中断服务子程序。响应过程(除响应过程(除中断类型码中断类型码获得方式外)同获得方式外)同INT n。CPU提供,不是外设提供。提供,不是外设提供。55第55页/共146页56类型码类型码 INTACLKAD7AD0T1T2T3T4第一个第一个中断响应周期中断响应周期T1T2T3T4第二个第二个中断响应周期中断响应周期 可可屏屏蔽蔽中中断断INTR:CPU将将执执行行持持续续两两个个总总线线周周期期的的中中断断响响应应周周期期。第第一一个个总总线线周周期期 INTA*有有效效,向向外外设设送送出出的的中中断断应应答答信信号号;第第二二个个总总线线周周期期INTA*再再

30、次次有有效效,表表示示外外设设应应送送出中断类型码。出中断类型码。CPU将在将在T4周期前沿读取中断类型码。周期前沿读取中断类型码。外部中断响应过程第56页/共146页57 在在INTR线线上上的的请请求求信信号号(高高电电平平)必必须须保保持持到到当当前前指指令令的的结束。结束。当当INTR线线有有效效且且IF=1,则则CPU在在当当前前指指令令执执行行完完毕毕后后,响响应外部中断请求,转入中断响应周期。应外部中断请求,转入中断响应周期。中中断断响响应应周周期期有有2个个,每每个个响响应应周周期期由由4个个T组组成成,中中间间以以空空闲状闲状 态(态(3个)隔开。个)隔开。2.可屏蔽中断可屏

31、蔽中断INTR的响应的响应类型码类型码 INTACLKAD7AD0T1T2T3T4第一个第一个中断响应周期中断响应周期T1T2T3T4第二个第二个中断响应周期中断响应周期第57页/共146页58在在每每个个中中断断响响应应周周期期,CPU都都往往引引脚脚INTA*发发一一个个负负脉脉冲冲信信号号请请求求中中断断的的外外设设在在收收到到第第2个个INTA*时时,将将中中断断类类型型码码 DB(通常由(通常由8259传送)。传送)。获得中断类型码后,则转入中断处理过程(同内部中断)。获得中断类型码后,则转入中断处理过程(同内部中断)。INTR共执行共执行7个总线周期。个总线周期。类型码类型码 IN

32、TACLKAD7AD0T1T2T3T4第一个第一个中断响应周期中断响应周期T1T2T3T4第二个第二个中断响应周期中断响应周期第58页/共146页中断响应周期时序CPU从引脚INTA 发中断响应信号,接口芯片接收此信号,把中断类型号准备好;同时ISRi=1,IRRi=0。CPU再从引脚INTA 发中断响应信号,接口芯片接此信号后,将中断类型号送至数据总线上;CPU从数据总线获取中断类型号。向量类型向量类型 INTA INTACLKCLKADAD7 7ADAD0 0T1T2T3T4第第 一一 个个中断响应周期中断响应周期T1T2T3T4第第 二二 个个中断响应周期中断响应周期59第59页/共14

33、6页60第60页/共146页中断类型码的获取NMI、断点中断、溢出中断、被0除、单步中断等类型码固定。INT N软中断类型码由立即数N给出。外部中断读取中断类型码。中断响应过程61第61页/共146页62已知中断类型码后,如何进入中断服务程序?1、将中断类型码乘以4,得到中断向量表的向量首址指针;2、将断点(当前CS、IP的值)入栈保护;3、取中断向量:把向量表指针所指的4个连续字节的内容作为中断服务程序的入口地址,分别送给IP和CS;4、按新的CS:IP指针执行中断服务程序。中断响应过程第62页/共146页63(FLAG)1000:150H3000:200H0:N40:N4+20:0000内

34、 存 、0200H 3000H 、MOV AX,0 ADD AX,DX MOV DI,AX、MOV BX,CX、IRET、类型类型N中断子程中断子程响应中断前响应中断前 SS:SP 01501000堆栈堆栈执行执行IRET后后(IP)(CS)(PSW)SS:SP 响应中断后响应中断后SS:SP(IP)=0200H(CS)=3000H中断向量表中断向量表0:0 3FFH0:3FFH0:0某中断源发申请中断,申请执行类型号为N的中断子程序中断响应过程中断响应过程第63页/共146页四、中断过程举例四、中断过程举例 设设某某输输入入设设备备数数据据准准备备就就绪绪后后向向CPU申申请请可可屏屏蔽蔽中

35、中断断,中中断断类型码为类型码为80H,中断响应后执行的服务子程序名为,中断响应后执行的服务子程序名为INTPROC。程程序序开开始始,首首先先应应对对中中断断向向量量表表进进行行安安排排,即即先先进进行行中中断断初初始化。程序如下:始化。程序如下:CLIPUSHDSMOVAX,0000H;中断向量指针的段基址中断向量指针的段基址MOVDS,AXMOVBX,0200H;中断向量指针的偏移量中断向量指针的偏移量MOVAX,OFFSET INTPROCMOVBX,AX;偏移量偏移量 中断向量表中断向量表MOVAX,SEG INTPROCMOVBX+2,AX;段基址段基址 中断向量表中断向量表POP

36、DSSTI64第64页/共146页CLIPUSHDSMOVAX,0000H;中断向量指针的段基址;中断向量指针的段基址MOVDS,AXMOVBX,0200H;中断向量指针的偏移量;中断向量指针的偏移量MOVAX,OFFSET INTPROCMOVBX,AX;偏移量;偏移量 中断向量表中断向量表MOVAX,SEG INTPROCMOVBX+2,AX;段基址;段基址 中断向量表中断向量表POPDSSTIMOVAX,2000HADDAX,AXMOVSI,AX 开开中中断断后后,执执行行任任何何指指令令期期间间都都有有可可能能接接收收到到中中断断申请。申请。假假设设执执行行到到程程序序中中的的ADDA

37、DD指指令令时时收收到到中中断断申申请请,且且IF=1IF=1,则,则CPUCPU响应中断。响应中断。响应过程如下图所示:响应过程如下图所示:65第65页/共146页 MOV AX,2000H ADDAX,AX (2)当前指令结束,)当前指令结束,CPU响应中断,执行中断响应中断,执行中断 响应总线周期,获得中断类型码(响应总线周期,获得中断类型码(80H)1234:5678MOVSI,AX (3)当前)当前FR内容压栈,内容压栈,IF=TF=0 (4)断点)断点CS(1234H)、)、IP(5678H)压栈)压栈 (5)查中断向量表,中断向量送)查中断向量表,中断向量送CS、IP(6)执行中

38、断服务处理程序INTPROCPROC MOV DX,DPORT INAL,DXIRET INTPROCENDP(7)执行IRET指令,恢复断点,恢复FRIP=5678H,CS=1234H,回到断点执行(1)INTR有效,外设申请中断66第66页/共146页START:MOV AX,DATAMOVDS,AXCLI;关中断,设置中断向量;关中断,设置中断向量SUB AX,AXMOVES,AX;中断向量表的段基址为;中断向量表的段基址为0000HMOVDI,460H;在中断向量表中的偏移量;在中断向量表中的偏移量MOVAX,OFFSET INTSVCLDSTOSW;写中断向量的偏移量;写中断向量的偏

39、移量MOVAX,SEG INTSVSTOSW;写中断向量的段基址;写中断向量的段基址STI INT60H;软中断指令;软中断指令 MOVAH,4CH;返回;返回DOSINT21H定义一个软中断,中断类型号为定义一个软中断,中断类型号为60H,在中断服务程序中完成,在中断服务程序中完成ASCII码码加偶校验位(第加偶校验位(第7位)的工作,位)的工作,ASCII码首地址为码首地址为ASCBUF,字节数为,字节数为COUNT,加偶校验位后仍放回原处。,加偶校验位后仍放回原处。67第67页/共146页INTSV PROC;中断服务程序;中断服务程序PUSHAX;保护现场;保护现场PUSHBXPUSH

40、CXMOVCX,COUNTMOVBX,OFFSETASCBUFL2:MOVAL,BXANDAL,AL;建立标志;建立标志PF,PF=1,有偶数个有偶数个1JPL1ORAL,80HMOVBX,AL;加入偶校验后写回;加入偶校验后写回L1:INCBXLOOP L2POPCX;恢复现场;恢复现场POPBXPOPAXIRET68第68页/共146页利用利用DOS功能调用设置中断向量表功能调用设置中断向量表设置中断向量:设置中断向量:把由把由AL指定中断类型码的中断向量指定中断类型码的中断向量DS:DX置在中断置在中断向量表中。向量表中。预置预置 AH=25H,AL=中断类型码中断类型码 DS:DX=中

41、断向量中断向量 执行执行 INT 21H读取中断向量:读取中断向量:把由把由AL指定中断类型码的中断向量从中断向量表中取到指定中断类型码的中断向量从中断向量表中取到ES:BX中。中。预置预置 AH=35H,AL=中断类型码中断类型码 执行执行 INT 21H 返回时送返回时送:ES:BX=中断向量中断向量69第69页/共146页7.3 可编程中断控制器8259A 专用于系统内可屏蔽硬件中断的控制,管理系统的外部中断请求。主要功能特点:1、每片8级优先级管理,级联后可达64级 2、自动产生中断向量 3、每路中断可分别屏蔽 4、功能灵活,优先权等多种工作方式可编程70第70页/共146页的结构和功

42、能数据总线缓冲器读写逻辑控制逻辑服务状态寄存器ISR优先权处理器PR中断请求寄存器IRR中断屏蔽寄存器IMR级联缓冲器比较器内部总线INTD07A0/71第71页/共146页1.8259A的内部结构的内部结构IRR中断请求寄存器(8位)保存8个(IR0IR7)外部中断请求信号Di1,表示IRi引脚有中断请求Di0,表示IRi引脚无中断请求72第72页/共146页IR中断屏蔽寄存器(8位)保存对中断请求信号IRi的屏蔽状态;Di1,则IRi引入的中断被屏蔽(关闭);Di0,则IRi引入的中断被开放。1.8259A的内部结构(续)的内部结构(续)73第73页/共146页当IR7IR0端有多个中断请

43、求同时发生时,由PR判定其最高优先权;在INTA脉冲期间将它置入中断服务寄存器ISR的相应位。PR优先权判别器(8位)1.8259A的内部结构(续)的内部结构(续)74第74页/共146页75ISR中断服务寄存器中断服务寄存器(8位位)保存正在被保存正在被8259A服务着的中断状态;服务着的中断状态;Di1,表示,表示IRi中断正在服务中;中断正在服务中;Di0,表示没有被服务。,表示没有被服务。1.8259A的内部结构(续)的内部结构(续)第75页/共146页8位双向三态缓冲器,构成8259A与系统数据线的接口。对8259A编程写入的命令字和读出8259A状态信息都是通过它传送。数据总线缓冲

44、器1.8259A的内部结构(续)的内部结构(续)76第76页/共146页77读写控制逻辑接收读/写控制信号RD/WR、片选信号CS和端口选择信号A0。一片8259A在系统中占用2个口地址,用地址线A0来选择端口;用高位地址线通过译码产生8259A的片选信号。1.8259A的内部结构(续)的内部结构(续)第77页/共146页包括命令字(ICW1ICW4)寄存器,操作字(OCW1OCW3)寄存器和相关的控制逻辑;通过INT端向CPU发中断请求信号,从INTA端接收CPU的中断响应信号,控制8259A进入中断状态。控制电路级连缓冲/比较器一片8259A只能接收8级中断,当超过8级时,可用多片8259

45、A级连使用,构成主从结构。可扩充到64级。1.8259A的内部结构(续)的内部结构(续)78第78页/共146页中断级连方式的连接一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A级连时,主8259A的三条级连线CAS0CAS2作为输出线,连至每个从8259A的CAS0CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP/EN在非缓冲方式下,规定该8259A是主片(SP1)还是从片(SP0)动画图示79第79页/共146页 CS A0 INTA D CAS0SP 主主8259

46、CAS1 CAS2 INTIR7 IR6 IR3 IR0CS A0 INTA D CAS0SP 从从8259 CAS1 CAS2IR7 IR0 INTCS A0 INTA D CAS0SP 从从8259 CAS1 CAS2IR7 IR0 INTABCBDBVccD70D70 8259 8259级连电路80第80页/共146页2.8259A的引脚功的引脚功能能D7D0:双向数据总线。传送控制、状态信息和中断类型号。WR*:写信号。输入,低电平有效。当有效时,8259A接收CPU送来的命令字。RD*:读信号。输入,低电平有效。当有效时,8259A将状态信息放入数据总线供CPU检测。81第81页/共

47、146页A0:内部地址信号,输入。8259A只占两个地址,A0与CS*一同构成8259A的端口奇/偶地址选择。CS*:片选信号。输入,低电平有效。有效时,CPU可对该8259A进行读写。2.8259A的引脚功能(续)的引脚功能(续)82第82页/共146页与处理器接口引脚的逻辑功能 A0 RD*WR*CS*功能功能0 1 0 01 1 0 00 0 1 01 0 1 0 1 1 0 1写入写入ICW1、OCW2和和OCW3写入写入ICW2ICW4和和OCW1读出读出IRR、ISR和查询字和查询字读出读出IMR数据总线高阻状态数据总线高阻状态数据总线高阻状态数据总线高阻状态83第83页/共146

48、页IR7IR0:外部中断请求信号,输入。INT:中断请求信号,输出。当IR7IR0任一引脚有中断请求时,8259A从INT向CPU发出中断请求信号。INTA:中断响应信号,输入。当CPU接收到中断请求信号,在允许中断条件下,CPU响应中断,并发出中断响应信号到INTA端。2.8259A的引脚功能(续)的引脚功能(续)84第84页/共146页 CAS2CAS0:级连信号,双向引脚。用于控制多片8259A的级连使用。主片:CAS2CAS0引脚输出从片:CAS2CAS0引脚输入SP/EN:双功能引脚。当缓冲方式时,该引脚输出,它用于总线收发器的使能信号;当非缓冲方式时,该引脚输入,SP=1表示该片是

49、主片,SP=0表示该片是从片。2.8259A的引脚功能(续)的引脚功能(续)85第85页/共146页3.8259A的工作过程的工作过程CAS0CAS2D0D7SP/ENIR0IR7CPU响应周期8259A工作波形INT第一个周期T1 T2 T3 T4ALECLK第二个周期T1 T2 T3 T4第一个前保持为高电平INTALOCK动画86第86页/共146页2.当外设发出中断请求后,其对外部中断请求的处理过程如下:当外设发出中断请求后,其对外部中断请求的处理过程如下:若有若有IRi=1,则,则IRR中相应位中相应位置置1。若对应若对应IMR中的相应位为中的相应位为0,且经优先权判别器,且经优先权

50、判别器PR后,则后,则8259A向向CPUINTR。若若IF=1,则,则CPU在执行完当前指令后,发在执行完当前指令后,发INTA8259A ISR中对应当前最高优先权的位为中对应当前最高优先权的位为1,且,且IRR中相应位中相应位清清0。8259A的工作过程1.上电后,由上电后,由CPU执行一段程序对执行一段程序对8259初始化(初始化(通过输入初通过输入初始化命令字实现始化命令字实现)。完成初始化后,)。完成初始化后,8259A处于处于 就绪状态就绪状态。第87页/共146页88CPU 进入响应中断的过程,继而执行中断子程序。CPU发发第第二二个个INTA8259A,8259ADB上上送送

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁