当前位置:文档之家› 第八章 微机的中断系统

第八章 微机的中断系统

第八章 微机的中断系统 教学目标: 教学目标:
1.掌握中断的基本概念 1.掌握中断的基本概念 2.掌握中断的作用及分类 2.掌握中断的作用及分类 3.掌握中断响应的一般过程 3.掌握中断响应的一般过程 4.了解中断向量表及使用 4.了解中断向量表及使用 5.了解8088系统中中断的控制系统 了解8088 5.了解8088系统中中断的控制系统 教学重点: 教学重点: 1.中断的基本概念 中断的基本概念、 1.中断的基本概念、作用及分类 2.中断响应的一般过程 2.中断响应的一般过程 3.中断向量表及使用 3.中断向量表及使用 4.8088系统中中断的控制系统 4.8088系统中中断的控制系统 教学难点: 教学难点: 1.中断响应的一般过程 1.中断响应的一般过程 2.中断向量表及使用 2.中断向量表及使用 3.8088系统中中断的控制系统 3.8088系统中中断的控制系统
三、中断的作用与用途
在微机中的中断现象是非常普遍的,除 了非屏蔽中断,是不可抗拒的外,更多的可 屏蔽中断的设置是为了将微机进行有条不乱 的工作。在许多时候为了工作的需要,要暂 时中断当前的工作,去执行其他的任务,之 后再去执行前面中断的工作。这就是微机中 的中断的作用和用途。
四、中断源的分类 内部中断源(溢出中断、除法出错中断、INT 中断源 外部中断源 INTR NMI 五、中断响应的一般过程
3.常见的中断源
常见的中断源主要就是内部中断源和外部 中断源两类。 中断事件事件是由处理器内部产生的,这类 中断源称其为内部中断源。例如,当CPU进行 运算时,除数太小,商无法表示或运算发生溢 出或执行软件中断指令等情况都认为是内部中 断。 当中断事件是由处理机外部设备产生,这 类中断源称为外部中断源。例如,某些外设请 求输入输出数据,硬件时钟定时到;某些设备 出现故障等等均属于这种情况。
第一节 中断系统的概述
一、中断的基本概念 1.中断
在CPU执行程序中,由于某种事件的发生,强迫 CPU暂时停止正在执行的程序而转向对该发生的事件 进行处理,当对事件的处理结束后又能回到原中止的 程序,接着中止前的状态继续执行原来的程序,这一 过程称为中断。
2.中断源
能够向CPU发出中断请求的中断来源或者是引起 中断的事件。
为了实现中断优先级的控制,满足上 面提到的两种情形人们采用了种种的方法。 一般我们软件查询方法。先被查询的优先 级最高/。后被查询的优先级依次降低。 在中断优先级控制中,我们提到优先级 高的中断源可以中断优先级低的中断服务 程序,出现了中断服务程序套中中断服务 程序的现象,就是中断的嵌套。
因此,INTR称为可屏蔽中断请求。通常又 称IF=0时,CPU处于关中断状态,IF=1时, CPU处于开中断状态。NMI称为非屏蔽中断请 求信号,上升沿有效。它不受标志位IF的约束。 只要CPU在正常地执行程序,它就一定会响应 NMI的请求。
二、中断系统的功能
1.中断响应 中断系统的第一个功能是在微机工作期间, 随时响应在各种情况下引起的中断请求。 2.中断处理 中断系统的第二个功能是微机响应了微机的中 断请求,就中断当前的任务去执行中断服务程序, 进行中断处理。
由用户来确定的,一个字节的中断向量码。从而 构成由用户自己确定的两个字节的软件中断指令。
3.外部中断
8088有两个信号输入端供外部中断源提出中断 请求的。 (1)非屏蔽中断NMI 8088的NMI不受IF标志的限制,只要是CPU 在正常执行程序,一旦NMI请求发生,CPU在一 条指令执行结束后将对它作出响应。NMI输入为 上升沿有效。
5.中断服务 5.中断服务
在确定了中断源后,就进入了中断的响应时期,就 是去执行响应的中断服务程序。
我们将用户进行中断处理所编写的程序统统称为中 断服务程序。这些程序包括断点保护—是指在中断响 应过程中CPU硬件未能保护的那些寄存器的内容进行保 护。对中断源进行针对其要求的服务。
中断服务程序分为两种情况:第一种是不允许被中断 的的中断服务程序。这种中断服务程序进入过程是中 断请求,CPU响应---承认、断点保护后进入该程序的 入口。在入口时刻,CPU内部硬件已经关中断并进行 了部分断点保护工作。从流程图中可以看到,服务程 序直到中断返回IRET前才开中断,保证在整个中断服 务子程序中不会被INTR所中断。值得注意的是流程图 是一般而论,对于某些CPU,图中开中断指令可以不 加。因为不加开中断指令,整个中断服务程序执行过 程均处于关中断状态。当执行中断返回时,原来标志 位寄存器的内容得以恢复。因此,返回被中断的程序 后CPU仍处于开中断状态。但一般CPU,这条指令则必 须加上才行。第二种是可以被中断服务子程序。
4.中断源识别 4.中断源识别
当只有一个中断源时,只要中断发 生,则一定是该中断源提出的中断请求。 CPU即可对它进行服务。当多个中断发生 时,一旦中断请求发生,CPU必须判断是哪 一个中断源提出的请求,只有将中断源找 到,才能针对提出的请求的中断源对其进 行服务。 确定中断源的方法:软件查询和中断矢量法。
3.断点保护 3.断点保护
在响应中断的过程中,CPU硬件对断点进行保护。 只是不同的CPU断点保护的内容略有不同。8088CPU在 中断响应时硬件自动关中断、将标志寄存器压入堆栈 进行保护、将CS和IP的内容压入堆栈加以保护。 一般说,在断点处,在许多应用中,要保证中断后返 回被中断的程序,并能正常运行,仅靠CPU硬件自动 保护的寄存器内容是不够的。所以,在中断服务程序 开始时,应由用户通过软件去保护那些中断响应中 CPU硬件没有保护,而对被中断的程序来说,又需要 保护的那些寄存器内容。
在8088CPU中,内部中断的除法错、 溢出、断点及用户自定义软件中断的优先 级最高,其次是NMI,比NMI优先级低的 是INTR,优先级最低的是单步中断。在 8088 8088处理中断的过程中,它处理不同类型 的中断的过程大致是相同的。即CPU将标 志位压栈保护,暂存寄存器TEPM存放中 断前的TF状态,清除IF和TF,而后将CS和 IP压入堆栈保护起来,再根据向量码转向 响应的服务程序。
4 .8088的中断处理过程 的中断处理过程
如图所示,是8088CPU响应 中断处理的过程。在8088CPU 中,8088执行程序时,一条条 的执行指令,在每执行完一条 指令后,CPU都会检测,看是 否有中断请求发生,如有要判 断中断的优先级,并且确定中 断向量码,来确定中断服务程 序的入口地址。
外部中断源产生引起中断的事件,事件 发生后,如何告诉CPU以便让它做出处理呢? 在CPU上有两条输入信号线:INTR和NMI。 外部中断源就是利用INTR和NMI加到CPU上 的。 INTR通常称为可屏蔽中断输入信号,高 电平有效—表示外部中断源提出的中断请求。 CPU能否响应该信号,还要受到标志位寄存 器IF的控制。当IF=1时,CPU在一条指令执 行完成后对它做出响应。当IF=0时,CPU不 予响应,该中断请求被屏蔽。
(3) 断点中断 8086(88)的指令系统中有—条专门用做设置断点的 命令,其操作码为单字节CCH,CPU执行该命令产生向量 码为3的中断(即方式3中断)。断点中断亦用于程序的调 试,在调试过程中利用该中断设置断点。 (4)溢出中断 当CPU进行算术运算时,如果发生溢出,则会使标志 寄存器的OF标志置1。如果在算术运算后加一条溢出中 断指令INTO,则溢出中断指令测试OF位,发现OF=1,则 发生向量码为4的中断(即方式4中断)。 (5)用户自定义的软件中断 用户可以用INT n 这样的指令形式来产生软件中 断。其中INT为助记088的中断优先及中断嵌套 的中断优先及中断嵌套
1.中断的优先级
在8088的微机系统中存在多个中断源时,各个中 断源在提出中断请求后,8088CPU对各个中断源的响 应速度是不一样的。也 就是说在多种中断同时发生 时,它们各自的优先级别是不一样的,他们有高低之 分。所以,在微机系统中,就要要求CPU能识别不同 中断源的优先级别。在微机中就提出了中断优先级的 控制问题。
一、8088的中断概述
8088有很强的中断系统,整个系统可以处 理256个不同的中断方式。每一个中断赋予一 个中断向量码,CPU根据向量码的不同来识别 不同的中断源。 1.8088的中断源 1.8088的中断源 有两种即内部中断源和外部中断源。
2.内部中断源
(1)除法错中断 在8088执行除法指令时,如果所得的商超过了 CPU所能表示的最大值,则CPU会立即产生一个向量 码为0的中,因此,除法错中断又称为方式0中断。 (2)单步中断 8088CPU的标志位寄存器中有一位TF标志—陷阱 状态标志位。CPU每执行完一条指令都要检测TF的 状态。如果发现TF=1,CPU产生中断向量码为1的中 断。使CPU转向单步中断的程序。单步中断广泛用 于程序的调试,使CPU一次执行一条指令。
1.中断请求 1.中断请求 当外部设备要求CPU对它的服务时,产生一个有效的中断请 求信号,注意是一个电平信号加到CPU的的中断请求输入端, 即可对CPU提出中断请求。
n)
2.中断承认 2.中断承认
CPU在每条指令的最后一个时钟周期检测中断请求 输入端有无请求发生,然后决定是否对它做出响应.CPU 承认一个中断请求,必须满足以下四个条件: (1)一条指令执行结束。 (2)CPU处于开中断状态。只有CPU的IF=1开中断时CPU 才有可能响应可屏蔽中断请求. (3)没有发生复位(RESET),保持(HOLD)和非屏蔽中断请 求(NMI)。 (4)开中断指令(STI)、中断返回指令(IRET)执行完, 还需在执行一条指令才能响应INTR请求。
2.中断优先级的控制
中断优先级控制有两种情况:
一种是:当不同优先级的多个中断源同时提出 请求时,CPU首先响应最高优先级的中断源。 另外一种是:当CPU正在对某一中断源服务时, 比它优先级更高的中断源提出中断请求,CPU 能够中断正在执行的中断服务程序转向响应并 对优先级别更高的中断源服务。 服务结束再返回原来优先级别较低的中断 服务程序继续执行。
相关主题