8086系统中、中断类型码、中断向量、中断向量表的关系
5.28086/8088 中断系统 1. 中断分类及中断类型代码 中断源: 产生中断的原因或发出中断请求的设备称为中断源。• 中断分为两类:硬件中断和软件中断 ①硬件中断:由外部硬件产生的中断,如打印机、键盘等,有时也称为外部中断。
硬件中断可以分为两类:可屏蔽中断和不可屏蔽中断。
不可屏蔽中断:由NMI引脚引入,不受中断使能标志位影响。
每个系统只允许有一个,用于处理紧急情况,例如停电处理。
当此中断发生时,系统会立即做出反应:由INTR引脚引入,受中断使能标志的影响,即可屏蔽中断只有在IF=1时才能进入,反之亦然。
可能存在多个可屏蔽中断,通常通过优先级排队,选择多个中断源之一进行处理。
②软件中断(内部中断):根据某条指令或标志寄存器中某标志位的设置而产生。
与硬件电路无关。
溢出中断是由 INT0 指令引起的 断点中断是由 INT3 指令引起的 单步是由标志 TF 引起的 ↘ 与指令不对应 除以 0 是由计算结果引起 ↙ 与指令不对应 • 中断类型code:8086/8088为每个中断源分配一个中断类型代码,取值范围为0~255,可处理56种中断。
其中包括软件中断、系统占用中断和用户暴露中断。
2、中断向量和中断向量表 系统处理中断的方式有很多种,处理中断最重要的一步就是如何根据不同的中断源中断进入相应的中断服务。
中断向量:每个中断服务子程序的输入称为中断向量表:这些中断向量按照一定的规则排列在一个表中,这就是所谓的中断向量表请求,可以通过查表,找出中断向量,然后转入相应的中断服务子程序。
8086/8088中断系统中的中断向量表位于0段0~3FFFH的存储区域,每个中断向量占用4个单元,其中前2个单元存储中断的输入地址的偏移量处理子程序(IP),按照中断类型号,低位在前,高位在后排列。
参见图 5-14。
下图给出了中断类型代码与中断向量位置的对应关系。
其中00H~04H为专用中断,05H~3FH为系统保留中断。
用户通常无法定义它们(其中一些有固定用途,例如 INT21H 是 MS-DOS 系统调用图 40)。
~FF 是用户定义的中断。
00H ~ 04H - 系统独占 10H ~ 1FH - BIOS 使用 40H ~ FFH - 用户使用 08H ~ 0FH - 硬件中断 20H ~ 3FH - DOS 使用中断类型号 * 4 来计算整个中断类型位置的中断向量中断向量表。
例如类型号为20H,则中断向量的存储位置为20H*4=80H(假设中断服务子程序的输入地址为4030:2010,则为10H、20H、30H、40.H)。
系统响应20H号中断,会自动搜索中断向量,找到对应的中断向量并加载 在CS和IP中,即转入中断服务子程序 3.中断响应过程及时序 8086/8088软件中断响应硬件中断的过程 这是因为软件造成的 软件中断和硬件中断的原因 下面主要讨论硬件中断的情况。
下面以可屏蔽中断为例。
引脚上收到中断请求信号。
如果此时IF=1,CPU将在当前指令执行完毕后开始响应外部中断请求。
此时CPU在引脚上发送两个负脉冲,外围设备连接到第二个负脉冲后,在数据线上发送中断类型码,接收到中断类型码后, CPU 执行以下操作: ① 将中断类型代码插入到临时寄存器中存储 ② 将标志寄存器的压入堆栈,以保护中断期间的状态 TF flags 为 0。
响应中断时发生其他中断,是将TF清0,防止CPU单步执行中断处理子程序。
此时特别提醒,由于CPU在响应中断时会自动关闭IF标志,所以用户如果想进行下一次中断,必须在自己的中断处理子程序中使用interrupt-on指令来重置IF ④ Protect断点,断点是指响应中断时主程序当前指令以下的指令地址。
因此,保护断点的动作就是将当前的IP和CS压入堆栈。
保护断点的目的是为了以后返回主程序。
⑤根据中断向量表中获得的中断类型对应的中断向量,加载到IP和CS中,然后自动转入中断服务子程序。
对于NMI进入的中断请求,由于类型码固定为2,CPU不需要从外设读取类型码,也不需要计算中断向量表的地址。
可以分别加载到IP和CS。
图5-15是8086/8088中断响应过程的流程图。
我们对此图进行一些说明: ① 8086/8088除了软件中断外,内部还有“不可屏蔽中断”和“可屏蔽中断”。
与优先事项。
级别等(单步除外)——即中断0、1、3、4的优先级高于不可屏蔽中断,不可屏蔽中断高于可屏蔽中断,单步中断有最低优先级 ② IF only =1 时才确定中断是否可以被屏蔽? ,只取中断类型代码,其余无此动作。
③ 单步中断的情况下,每执行一条指令就中断一次,并显示各寄存器当时的,供用户参考,中断返回时,由于响应的恢复。
此时标志寄存器的值,所以TF=1,执行完一条指令后,进入单步中断,直到程序将TF变为0。
④对于中断嵌套,NMI总是可以响应的。
如果在中断处理子程序中设置了允许中断指令,INTR 请求也可以得到响应。
⑤弹出IP、CS、标志位并返回断点的动作由IRET指令完成。
⑥某些情况下,即使满足条件,CPU也不能立即响应中断,必须执行下一条指令(而不是当前指令)。
• 准确地执行LOCK指令 • 执行给SS寄存器赋值的传送指令,因为通常需要使用两条连续的指令给SS和SP寄存器赋值,以保证堆栈的正确性。
指针。
⑦ 当遇到等待指令或字符串操作指令时,指令执行过程中允许中断。
此时要注意保护阶段i中断处理子程序保证中断返回后这些指令能够继续正确执行。
中断向量表中断向量表
中断向量表是8086系统中的关键数据结构,它负责存储各种中断的向量地址,从而为操作系统提供了高效处理中断请求的方法。
中断向量表通常按照中断类型编号的升序存储,从00到FF,总共包含256种中断类型。
每个中断类型都有一个对应的中断向量,其中包含中断服务程序的输入地址。
具体为: -00~03:除法溢出中断 -04~07:单步中断(调试用) -08~0B:不可屏蔽中断(NMI) -0C~0F:断点中断(调试用) - 10~13 :溢出中断-14~17:打印屏幕-18~1F:保留,可能用于功能或 特殊扩展。
除了基本中断类型外,还有特殊的中断向量,用于特定的硬件或系统功能: - BIOS 中断:这些中断由基本输入输出系统 (BIOS) 生成,用于硬件初始化、测试、I/ O操作等 -DOS中断:在DOS操作系统中,这些中断用于支持DOS操作环境,包括I/O操作、中断处理等。
中断向量表还包含参数表指针、I/O地址和中断类型以及各种函数描述。
这些信息共同构建了系统中断处理的基本架构,使得计算机系统在硬件异常或外部设备请求发生时能够快速响应并执行相应的处理程序。
利用中断向量表,系统可以有效地处理各种中断事件,保证系统的稳定性和响应能力。
这种结构化的方法不仅简化了中断处理流程,还为开发人员提供了丰富的调试和故障排除工具。
(中断源识别标志可用于构成相应中断服务程序的输入地址或存储服务程序中断首地址)称为中断向量。
PC/AT中硬件生成的中断标识码称为中断类型号(当然中断类型号还有其他生成方式,如指令中直接给出的、CPU自动形成的等)。
),即在中断 8259A 的响应期间。
生成的是当前请求中断的最高优先级中断源的中断类型号。
中断类型号与中断向量的关系如下: 中断类型号×4=中断向量存放的首地址。
使用存储中断向量的首地址,删除中断服务程序。
该地址条目的4个存储单元
中断向量是指什么?
概念介绍
中断识别码(中断类型号):
由硬件(通常是中断控制器)产生,用于识别不同的中断源。
中断向量:
中断服务程序的入口地址。
在一些计算机中,中断向量的位置存储有跳转指令,该指令跳转到中断服务程序的入口地址。
中断向量地址:
存放中断向量的存储单元地址
中断向量指的是被中断的硬件。
用于早期的微型计算机系统。
生成的中断标识码(中断源的标识标志,可用于构成对应中断服务程序的入口地址或存放中断服务程序的首地址)。
中断是指计算机在执行程序过程中出现异常情况或特殊请求时,计算机停止当前程序的运行,转而处理这些异常或特殊请求,然后返回到上一级的中断。
处理完成后的当前程序。
,继续执行原程序。
什么叫中断类型号?作用?
中断类型号是系统分配给每个中断源的代码,它是8位,用于匹配一个系统到另一个系统的中断源。
中断类型号负责指导CPU寻找中断服务程序的入口点。
通过中断类型号查中断向量表可以得到中断向量(中断服务程序入口地址)。
破坏性服务计划接入点;
扩展信息
一般来说, 外部中断主要有以下几种:
(1)I/O设备:监视器、 键盘; 打印机,
(2)数据通道:软盘等;
硬盘, CD等;
(3)实时时钟:外部定时电路等;
(4)用户误差来源:电源故障; 等式错误等
CPU内部产生中断的来源有以下几种:
(1)由CPU运算结果产生:除以0; 由此产生的过剩; 一步处理等 ;
(2)执行中断指令INT: INT3;
参考来源:百度百科--中断类型代码
参考来源:百度百科--中断字段表
参考来源:百度百科--中断字段表