- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
08 中断
第七章 中断 一、中断的基本概念 二、中断的定义 CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。 三、中断源 引起CPU中断的事件:中断源。例如: 外设:请求输入输出数据,报告故障等 事件:掉电、硬件故障、软件错误、非法操作、定时时间到等 中断源分为:外部中断、内部中断 内部中断:CPU内部执行程序时自身产生的中断 外部中断:CPU以外的设备、部件产生的中断 8086/8088的外部中断信号:INTR、NMI INTR:可屏蔽中断请求,高电平有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应。 NMI:非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。 第二节 中断处理过程 五个步骤: 中断请求 中断判优(有时还要进行中断源识别) 中断响应 中断服务 保护现场、执行中断服务程序、恢复现场、开中断 中断返回 以下以外部中断为主介绍这五个步骤。 (1)中断请求 1、外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚; 中断请求信号:边沿请求,电平请求 例如,NMI为边沿请求,INTR为电平请求 2、中断请求信号应保持到中断被处理为止; 3、CPU响应中断后,中断请求信号应及时撤销。 4、在8086/8088系统中,外设的中断要经过8259A可编程中断控制器(PIC)的排队判优后向CPU发出: (I/O接口) → PIC → CPU (3)中断响应 在每条指令的最后一个时钟周期,CPU检测INTR或NMI信号。若以下条件成立,则CPU响应中断: (1)当前指令执行完。 (2)对INTR,CPU应处于开中断状态,即IF=1; (3)当前没有复位(RESET)和保持(HOLD)信号。 (4)若NMI和 INTR 同时发生,则首先响应NMI。 8086/8088 CPU响应中断请求的条件 对可屏蔽中断,CPU响应中断是有条件的。对8086/8088来讲,条件有以下三个: (1)在现行指令周期内无总线请求(最小方式时HOLD无效,最大方式时RQ/GT无效),而且无非屏蔽中断请求; (2)中断允许标志IF置位; (3)如果现行指令是HLT或WAIT指令,则 可以立即响应中断,否则必须完成正在执行的指令后才能响应中断。另外,对于加有前缀的指令,CPU在前缀和指令之间不识别中断请求;对目标地址是段寄存器的MOV和POP的指令,则CPU是在这些指令的后一条指令执行后才响应中断。这是因为改变存储区必须两条指令才完成,第一条指令改变段寄存器,第二条指令改变偏移量,若执行完改变段寄存器的指令就识别中断,则新的基地址与旧的偏移量结合将是无意义的。 在有些情况下,即使中断允许标志位IF=1,CPU也不能立即响应外部的可屏蔽中断请求,而是要再执行完下一条指令才响应外部中断。例如,发出中断请求时,CPU正在执行封锁指令。如果执行向段寄存器传送数据的指令,如MOV和POP指令,也要等下一条指令执行完后,才允许中断。当遇到等待指令或串操作指令时,允许在指令执行过程发中断请求,但在一个基本操作完成后响应中断。 CPU中断响应时,要做下述三项工 (1)向中断源发出INTA#中断响应信; (2)保护断点,包括CS、IP和PSW(FLAGS)。这主要是保证中断结束后能返回被中断的程序。 (3)获得中断服务程序首地址(入口)。 如何得到中断处理程序的首地址? 中断向量法 8086/8088CPU中断响应的过程: 当有中断请求且满足响应条件时,CPU就进入中断响应的过程。对8086/8088来讲,响应过程如下: 1、在相邻的两个总线周期内发出响应信号INTA; 2、CPU接收中断类型码n; 3、保护处理器的当前状态,将PSW、下一条指令的CS和IP压入堆栈,以保证在中断处理程序完成后能正确返回断点; 4、清除IF和TF标志。清除IF标志的目的是避免在响应中断的过程中或进入中断处理程序后受到其他中断源的干扰。只有在中断处理程序中出现开中断指令(STI)才允许CPU接收其他设备的中断请求; 5、根据中断类型码n查找中断处理程序入口。将中断向量表中(n×4)所指的两个字节送给IP,(n×4+2)所指的两个字节送给CS。中断向量表中(n×4),(n×4+2)所存放的内容就是相应的中断处理程序的入口地址。 (4)中断处理(中断服务) 中断服务子程序特点 为“远”过程(类型为FAR) 要用IRET指令返回 中断服务子程序要做的工作 保护现场(PUSH r
文档评论(0)