欢迎来到天天文库
浏览记录
ID:39240108
大小:2.03 MB
页数:92页
时间:2019-06-28
《中断系统与中断控制器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主讲:禹定臣微机原理及接口技术信息工程学院第7章8086中断系统与中断控制器微机原理与接口技术中断的基本概念8086中断系统中断处理过程可编程中断控制器8259A主要内容§7.1概述中断申请主程序中断服务程序返回图7.1中断示意图1.什么是中断?7.1.1基本概念(1)实现CPU与外设的并行工作,提高了CPU的效率。(2)实现实时处理。(3)实现故障处理。2.应用中断技术的优点引起中断的原因,产生中断请求的来源。通常有以下几种:①一般的I/O设备,如键盘、打印机等。②实时时钟。③硬件故障。④中断指令或软件故障,如程序错、运算错、调试程序而设置的中断(例如设置断点,单步运行等)。3.中断源
2、(1)实现断点地址的保护与恢复。(2)实现现场信息的保护。(3)实现中断优先级的排队。(4)实现中断的嵌套。中断服务2(高优先级)主程序中断服务14.中断系统的功能5.中断优先级当多个中断源请求中断时,CPU响应优先级高的中断,挂起优先级低的中断。当CPU运行中断服务子程序时,又有新的更高优先级中断申请进入,CPU要挂起原中断进入更高级的中断服务子程序,实现中断嵌套。7.1.2实现中断优先级的方法软件查询方式硬件方式—菊花链法矢量中断优先级1.软件查询方式图7.2软件查询优先级管理电路图7.3软件查询中断流程图采用软件查询方式的特点:①询问的次序,即为优先权的次序。②硬件简单。③由查询
3、转至相应的服务程序的时间长,尤其在中断源较多的情况。2.硬件方式图7.4菊花链优先级排队电路图7.5菊花链逻辑电路3.矢量中断优先级利用专用的可编程中断控制器管理中断优先级,又称专用芯片中断管理方式。典型的可编程中断控制器是8259A。§7.28086的中断系统8086有256种中断,分为两大类:7.2.1中断类型外部中断(硬件中断)内部中断(软件中断)图7.68086中断类型1.外部中断(硬件中断)(1)非屏蔽中断NMI(类型号2)有效,不受FR中IF的影响,常用于处理系统的重大故障。(2)可屏蔽的中断INTR高电平有效,CPU是否响应,取决于FR中IF的状态。常用于各种外设的中断。2
4、.内部中断(软件中断)通常由三种情况引起:(1)INTn指令中断(n为中断类型号)(2)处理CPU某些错误的中断①除法错中断(中断类型号0)②溢出中断(INTO)(中断类型号4)(3)为调试程序设置的中断①单步中断当FR中TF=1时,每执行一条指令,CPU产生类型为1的单步中断。②断点中断设置断点实际上是把指令“INT3”插入到程序中,CPU每执行到断点处的“INT3”指令,便产生类型为3的中断。8086系统中,中断优先级的次序为:高低内部中断(除法错、INTO、INTn)NMIINTR单步中断7.2.2中断优先级§7.3中断处理过程一个完整的中断处理过程为:①中断请求(中断源提出)②中
5、断检测(判断是何种类型中断)③中断响应④执行中断服务程序⑤中断返回7.3.18086CPU对中断的响应流程CPU响应中断要有三个条件:①外设提出中断申请;②本中断位未被屏蔽;③中断允许(可用指令STI开中断)。满足上述条件,则CPU在当前指令执行完后响应中断。1.一般的中断响应过程图7.7中断响应流程CPU在每一个指令周期的最后一个总线周期的最后一个T状态采样INTR或NMI信号线。若发现有中断申请,则不进入取指周期,而转入中断响应周期。下面以INTR为例,说明8086CPU响应中断的过程。2.8086CPU响应外部中断的过程执行一条指令最后一个总线周期的最后一个T状态?有INTR?中断
6、开放?(FR中的IF=1?)关中断CLI(置FR中IF=0)断点地址(IP.CS)入栈FR入栈转入相应中断服务程序保护现场中断服务处理恢复现场开中断STI(置FR中IF=1)中断返回IRET取下一条指令NoNoNoYesYesYes图7.88086CPU响应INTR的过程讨论:(1)为什么要在中断服务程序中执行STI指令?(2)STI指令在中断服务程序中的不同位置时,对CPU处理中断有何影响?CPU响应中断后,如何得到中断服务程序的入口地址,转入到中断服务程序?8086CPU通过建立中断向量表的方法解决。7.3.2中断向量和中断向量表1.中断向量表图7.9中断向量表中断向量(中断服务程序
7、入口地址)在表中的地址=中断类型号×4BIOS负责0~1FH共32个中断向量的装入。用户若想装入自己的中断向量到向量表中的,可用以下方法:2.中断向量的装入(1)用STOS指令填空中断向量表假设类型号60H的中断向量为CLICLDMOVAX,0MOVES,AXMOVDI,460H;DI指向表中对应位置MOVAX,OFFSET_INTR;取偏移地址STOSW;AL[DI],AH[DI+1],DI+2DIMOVAX,
此文档下载收益归作者所有