内部中断、外部中断、硬件中断和软件中断分析

上传人:子 文档编号:43876470 上传时间:2018-06-07 格式:DOC 页数:2 大小:26.50KB
返回 下载 相关 举报
内部中断、外部中断、硬件中断和软件中断分析_第1页
第1页 / 共2页
内部中断、外部中断、硬件中断和软件中断分析_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《内部中断、外部中断、硬件中断和软件中断分析》由会员分享,可在线阅读,更多相关《内部中断、外部中断、硬件中断和软件中断分析(2页珍藏版)》请在金锄头文库上搜索。

1、软件中断、硬件中断、外部中断、内部中断 2010-01-30 16:35:05| 分类: 电子爱好者|字号 订阅 8086/8088 把中断分为内部中断和外部中断两大类。为了支持多任务和虚拟存储器等功能, 80386 把外部中断称为“中断”,把内部中断称为“异常”。与 8086/8088 一样,80386 通常在 两条指令之间响应中断或异常。80386 最多处理 256 种中断或异常。 1.中断 对 80386 而言,中断是由异步的外部事件引起的。外部事件及中断响应与正执行的 指令没有关系。通常,中断用于指示 I/O 设备的一次操作已完成。与 8086/8088 一样, 80386 有两根引脚

2、 INTR 和 NMI 接受外部中断请求信号。INTR 接受可屏蔽中断请求。 NMI 接受不可屏蔽中断请求。在 80386 中,标志寄存器 EFLAGS 中的 IF 标志决定是否屏 蔽可屏蔽中断请求。 外部硬件在通过 INTR 发出中断请求信号的同时,还要向处理器给出一个 8 位的中 断向量。处理器在响应可屏蔽中断请求时,读取这个由外部硬件给出的中断向量号。处理 器对这个中断向量号并没有规定。但在具体的微机系统中,系统必须通过软件和硬件的配 合设置,使得给出的这个中断向量号不仅与外部中断源对应,而且要避免中断向量号使用 冲突情况的出现。可编程中断控制器芯片 8259A 可配合 80386 工作

3、,能够根据设置向处理 器提供上述中断向量号,还能处理中断请求的优先级。每个 8259A 芯片可以支持 8 路中断 请求信号,如果使用 9 个 8259A 芯片(一个主片,8 个从片),就可使 80386 在单个引脚 INTR 上接受多达 64 个中断源的中断请求信号。 处理器不屏蔽来自 NMI 的中断请求。处理器在响应 NMI 中断时,不从外部硬件接 收中断向量号。与 8086/8088 一样,在 80386 中,不可屏蔽中断所对应的中断向量号固定 为 2。为了不可屏蔽中断的嵌套,每当接受一个 NMI 中断,处理器就在内部屏蔽了再次响 应 NMI,这一屏蔽过程直到执行中断返回指令 IRET 后

4、才结束。所以,NMI 处理程序应以 IRET 指令结束。 2.异常 异常是 80386 在执行指令期间检测到不正常的或非法的条件所引起的。异常与正执 行的指令有直接的联系。例如,执行除法指令时,除数等于 0。再如,执行指令时发现特 权级不正确。当发生这些情况时,指令就不能成功完成。软中断指令“INT n”和“INTO”也 归类于异常而不称为中断,这是因为执行这些指令产生异常事件。 80386 识别多种不同类别的异常,并赋予每一种类别以不同的中断向量号。异常发生 后,处理器就象响应中断那样处理异常。即根据中断向量号,转相应的中断处理程序。把 这种中断处理程序称为异常处理程序可能更合适。 根据引起

5、异常的程序是否可被恢复和恢复点不同,把异常进一步分类为故障(Fault)、 陷阱(Trap)和中止(Abort)。我们把对应的异常处理程序分别称为故障处理程序、陷阱处理 程序和中止处理程序。 故障是在引起异常的指令之前,把异常情况通知给系统的一种异常。80386 认为故障 是可排除的。当控制转移到故障处理程序时,所保存的断点 CS 及 EIP 的值指向引起故障 的指令。这样,在故障处理程序把故障排除后,执行 IRET 返回到引起故障的程序继续执 行时,刚才引起故障的指令可重新得到执行。这种重新执行,不需要操作系统软件的额外 参与。故障的发现可能在指令开始执行之前,也可能在指令执行期间。如果在指

6、令执行期 间检测到故障,那么中止故障指令,并把指令的操作数恢复为指令开始执行之前的值。这 可保证故障指令的重新执行得到正确的结果。例如,在一条指令的执行期间,如果发现段 不存在,那么停止该指令的执行,并通知系统产生段故障,对应的段故障处理程序可通过 加载该段的方法来排除故障,之后,原指令就可成功执行,至少不再发生段不存在的故障。陷阱是在引起异常的指令之后,把异常情况通知给系统的一种异常。当控制转移到 异常处理程序时,所保存的断点 CS 及 EIP 的值指向引起陷阱的指令的下一条要执行的指 令。下一条要执行的指令,不一定就是下一条指令。因此,陷阱处理程序并不是总能根据 保存的断点,反推确定出产生

7、异常的指令。在转入陷阱处理程序时,引起陷阱的指令应正 常完成,它有可能改变了寄存器或存储单元。软中断指令、单步异常是陷阱的例子。 中止是在系统出现严重情况时,通知系统的一种异常。引起中止的指令是无法确定 的。产生中止时,正执行的程序不能被恢复执行。系统接收中止后,处理程序要重新建立 各种系统表格,并可能重新启动操作系统。硬件故障和系统表中出现非法值或不一致的值 是中止的例子。 软硬中断问题要搞清楚什么是软中断,什么是硬中断,就必须了解软件中断存在的机理.现代的单片机应用中,往往伴随着操作系统的应用,单片机为了方便操作系统编程,会保留 一些特权指令,方便操作系统控制整个机器,也为了方便软件中的一

8、些原子操作,这些原子操 作不允许中断破坏,软中断指令表面上类似于函数调用,与函数调用相比,更重要的功能是使 单片机进入特权运行状态,在这个状态下,操作系统可以做一些用户状态下不能使用的功能.像 51 这类没有特权功能的单片机是不存在也没有必要存在软件中断功能的.区别软硬件中断的方法很简单,CPU 的手册会告诉你哪条指令会产生软件中断.中断是 CPU 处理外部突发事件的一个重要技术。它能使 CPU 在运行过程中对外部事件发 出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行 CPU 原来的工作。 引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断 分为硬件

9、中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断 两类。外部中断一般是指由计算机外设发出的中断请求,如:键盘中断、打印机中断、定时器 中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备 的中断请求。内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算 溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。软件中断其实并不是真正的中断,它们只是可被调用执行的一般程序。例如:ROM BIOS 中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理 中断等, )以及 DOS 的系统功能调用(INT 21H)等都是软件中断。CPU 为了处理并发的 中断请求,规定了中断的优先权,中断优先权由高到低的顺序是: (1)除法错、溢出中 断、软件中断 (2)不可屏蔽中断 (3)可屏蔽中断 (4)单步中断。

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

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号