8086系统中,中断类型码、中断向量、中断向量表的关系是什么?

如题所述

中断类型码:,其实就是中断号,对不同的中断服务程序不同的名称记号,以调用该中断程序.
中断向量:指向中断服务程序的入口地址.一个向量代表的入口地址为4个字节.
中断向量表:由于存在多个中断请求,相应有多个中断服务程序,即有多个存放这些程序的入口地址(即中断向量).为此系统在内存的特定区域安排一张中断向量表,专门存放所有的中断向量.此表即中断向量表.
以上三者关系:中断向量=[中断号X4], 其中方括号的含义是内存单元的内容.(即中断向量表刚好存放在内存绝对地址0开始的位置)
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-28

中断向量=[中断X4],包括括号的含义是内存单元的内容。(也就是说,只存储在内存地址0中,绝对开始位置)代码:中断类型,实际上被中断,标记为不同的中断服务程序的名称,以调用中断程序。

1、中断向量:中断服务程序的入口地址。一个向量表示4个字节的输入地址。

2、对规模的破坏:因为有多个中断请求,有多个中断服务例程,对应的存储有多个程序入口地址(即中断向量)。这个系统在一个特定区域的内存中安排一个中断到规模,专门存储所有的中断向量。这种形式的规模的中断。

3、在8086系统中,一个矢量中断用于描述8086系统中中断类型代码、中断向量和中断规模之间的关系。

本回答被网友采纳
第2个回答  2017-12-29
5. 2 8086/8088 中断系统

一、中断分类及中断类型码

中断源 :引起中断的原因或发出中断请求的设备称为中断源。

• 中断的分类

共分为两类:硬件中断和软件中断

①硬件中断 :即通过外部的硬件产生的中断,如打印机、键盘等,有时也称为外部中断。硬件中断又可分为两类:可屏蔽中断和不可屏蔽中断。

不可屏蔽中断 :由 NMI 引脚引入,它不受中断允许标志的影响,每个系统中仅允许有一个,都是用来处理紧急情况的,如掉电处理。这种中断一旦发生,系统会立即响应;

可屏蔽中断 :由 INTR 引脚引入,它受中断允许标志的影响,也就是说,只有当 IF = 1 时,可屏蔽中断才能进入,反之则不允许进入,可屏蔽中断可有多个,一般是通过优先级排队,从多个中断源中选出一个进行处理。

②软件中断 (内部中断):即根据某条指令或者对标志寄存器中某个标志的设置而产生,它与硬件电路无关,常见的如除数为 0 ,或用 INT n 指令产生。

溢出中断由 INT0 指令引起

断点中断由 INT3 指令引起

单步由标志 TF 引起 ↘不对应指令

除 0 由计算结果引起 ↙不对应指令

• 中断类型码:

8086/8088 为每个中断源分配了一个中断类型码,其取值范围为 0 ~ 255 ,即可处理 56 种中断。其中包括软件中断,系统占用的中断以及开放给用户使用的中断。

二、中断向量和中断向量表

系统处理中断的方法很多,处理中断的步骤中最主要的一步就是如何根据不同的中断源进入相应的中断服务子程序,目前用的最多的就是向量式中断。

中断向量 :把各个中断服务子程序的入口都称为一个中断向量;

中断向量表 :将这些中断向量按一定的规律排列成一个表,就是所谓的中断向量表,当中断源发出中断请求时,即可查找该表,找出其中断向量,就可转入相应的中断服务子程序。

8086/8088 中断系统中的中断向量表是位于 0 段的 0 ~ 3FFFH 的存贮区内,每个中断向量占四个单元,其中前两个单元存放中断处理子程序的入口地址的偏移量( IP ),低位在前,高位在后;后两个单元存放中断处理子程序入口地址的段地址( CS ),也是低位在前,高位在后,整个中断向量的排列是按中断类型号进行的。见 P 图 5-14 。

图示给出了中断类型码与中断向量所在位置之间的对应关系。其中 00H ~ 04H 为专用中断, 05H ~ 3FH 为系统保留中断,用户一般是不能对它们定义的(这里面有一些为固定的用途,如 INT 21H 即为 MS - DOS 图 5-14

的系统调用), 40 ~ FF 为用户定义的中断。

00H ~ 04H ――系统专用

10H ~ 1FH ―― BIOS 用

40H ~ FFH ――用户用

08H ~ 0FH ――硬件中断

20H ~ 3FH ―― DOS 用

中断类型号* 4 即可计算某个中断类型的中断向量在整个中断向量表中的位置。如类型号为 20H ,则中断向量的存放位置为 20H * 4 = 80H ,(设中断服务子程序的入口地址为 4030 : 2010 ,则在 0000 : 0080H ~ 0000 : 0083H 中就应顺序放入 10H 、 20H 、 30H 、 40H 。当系统响应 20H 号中断时,会自动查找中断向量,找出对应的中断向量装入 CS 、 IP ,即转入该中断服务子程序。

三、中断响应过程与时序

8086/8088 对软件中断和硬件中断响应的过程是不同的,这是由于软件中断和硬件中断所产生的原因不同,下面主要讨论硬件中断的情况。

• 硬件中断的响应过程

硬件中断指的是由 NMI 引脚进入的非屏蔽中断或由 INTR 引脚进入的可屏蔽中断。下面以可屏蔽中断为例。

CPU 在 INTR 引脚上接到一个中断请求信号,如果此时 IF = 1 , CPU 就会在当前指令执行完以后开始响应外部的中断请求,这时, CPU 在 引脚连续发两个负脉冲,外设在接到第二个负脉冲以后,在数据线上发送中断类型码,接到这个中断类型码后, CPU 做如下动作:

①将中断类型码放入暂存器保存;

②将标志寄存器内容压入堆栈,以保护中断时的状态;

③将 IF 和 TF 标志清 0 ,目的是防止在中断响应的同时又来别的中断,而将 TF 清 0 是为了防止 CPU 以单步方式执行中断处理子程序。这时要特别提醒,因为 CPU 在中断响应时自动关闭了 IF 标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置 IF ;

④保护断点,断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。因此保护断点的动作就是将当前的 IP 和 CS 的内容入栈,保护断点是为了以后正确地返回主程序;

⑤根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入 IP 和 CS ,即呆自动转向中断服务子程序。

对 NMI 进入的中断请求,由于其类型码固定为 2 ,因此 CPU 不用从外设读取类型码,也不需计算中断向量表的地址,只要将中断向量表中 0000 : 0008H ~ 0000 : 000BH 单元内容分别装入 IP 和 CS 即可。

图 5-15 给出了 8086/8088 中断响应过程的流程图,对这个图我们做几点说明:

① 8086/8088 除软件中断外,内部“非屏蔽中断”、“可屏蔽中断”均设立有优先级,其中内中(除单步外)――即 0 、 1 、 3 、 4 号中断的优先级高于非屏蔽中断,非屏蔽中断高于可屏蔽中断,单步中断优先级最低;

②只有在可屏蔽中断的情况下才判 IF = 1 ?,才取中断类型码,其余的没有这个动作。

③关于单步中断,它是每执行一条指令中断一次,显示出当时各寄存器的内容,供用户参考,当进入单步中断响应时, CPU 自动清除了 TF ,在中断返回后,由于恢复了响应时的标志寄存器的值,因此 TF = 1 ,执行完一条指令后又进入单步中断,直到程序将 TF 改为 0 为止。

④关于中断的嵌套, NMI 总是可以响应的,若在中断处理子程序中设立了开中断指令, INTR 的请求也能响应。

⑤弹出 IP 、 CS 、标志,返回断点的动作由 IRET 指令完成。

⑥有些情况下,即使条件满足, CPU 也不能马上响应中断,必须执行完下一条指令(而不是当前指令)才行。

• 正好执行 LOCK 指令;

• 执行往 SS 寄存器赋值的传送指令,因为一般要求连续用两条指令对 SS 和 SP 寄存器赋值,以保证堆栈指针的正确性。

⑦当遇到等待指令或串操作指令时,允许在指令执行的过程中进入中断。这时需注意在中断处理子程序中保护现场,以保证中断返回后能继续正确地执行这些指令。

8086系统中,中断类型码、中断向量、中断向量表的关系是什么?
中断类型码:,其实就是中断号,对不同的中断服务程序不同的名称记号,以调用该中断程序.中断向量:指向中断服务程序的入口地址.一个向量代表的入口地址为4个字节.中断向量表:由于存在多个中断请求,相应有多个中断服务程序,即有多个存放这些程序的入口地址(即中断向量).为此系统在内存的特定区域安排一张中断向...

8086系统中、中断类型码、中断向量、中断向量表的关系
8086\/8088 中断系统中的中断向量表是位于 0 段的 0 ~ 3FFFH 的存贮区内,每个中断向量占四个单元,其中前两个单元存放中断处理子程序的入口地址的偏移量( IP ),低位在前,高位在后;后两个单元存放中断处理子程序入口地址的段地址( CS ),也是低位在前,高位在后,整个中断向量的排列是按中...

什么叫矢量中断?请叙述中断类型号、中断向量表和中断服务程序入口地址三 ...
矢量中断,当cpu读取位于0x18处的IRQ中断指令的时候,系统自动读取对应于该中断源确定地址上的指令取代0x18处的指令。在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,并从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口地址。中断向量地址,...

中断向量表中断向量表
中断向量表是8086系统中一个关键的数据结构,它负责存储各种中断的向量地址,从而为操作系统提供了一种高效处理中断请求的方法。中断向量表通常按中断类型号从小到大的顺序存放,从00到FF,总共包含了256个中断类型。每个中断类型都有一个对应的中断向量,包含了中断服务程序的入口地址。具体来说:- 00 ~ ...

什么是中断向量?什么是中断向量表,有何作用,位于内存什么位置?8086共有...
中断向量指中断处理程序的入口地址,由处理机自动寻址。中断向量表是存放中断处理程序入口地址的默认的内存区域。在8086中,中断类型码乘以4得到向量表的入口,从此处读出4个字节内容即为中断向量。因中断类型码为8位,中断类型码的个数为0——FFH,所以最多有256个(级)中断 望采纳!

8086汇编语言与接口设计课程中,求8086中断向量表及其每个中断向量作用及...
8088\/8086中断向量表的作用是什么?【答】中断向量是中断服务程序的入口地址。将所有中断向量集中放在一起,形成中断向量表。8086系统有256个类型的中断源。每个类型对应一个中断向量,一个中断向量由四个字节组成:2个高地址字节:存放中断服务程序的代码段的段值;2个低地址字节:存放中断服务程序的偏移...

8086的中断向量表中存放的是中断向量问题
8086的中断向量表中存放的是中断向量,即中断处理程序的(入口地址)这张中断向量表的位置固定在内存的最低(0段)中,即(00000H)~(003FFH)处。若在0000:002C 开始的4个字节中分别是45H,23H,B6H,EAH ,则对应的中断类型号为(0BH)的中断向量是(EAB6H:2345H)。中断类型号为0BH,...

异常向量表和中断向量表什么关系
中断向量就是芯片在厂家设计生产时,按设计要求给要发生的中断都规定了一个入口都定了一个固定的地址,这就是说在程序运行中,一但有中断发生,那程序就会自动跳到对应的地址上去,这个与中断有关的地址,我们就叫它为“中断向量表”,可有些如低电压了,程序不能正常工作了,那51单片机就会自动跳回...

在8086系统中,一个中断型号为0Dch的终端服务子程序位于从0200h:4600h...
解答:1、用4乘上中断类型号就是在中断向量表中的物理地址,一个中断向量占4个存储单元。前两个放IP,后两个放CS(低位在前,高位在后) ,根据上面的定义:0DCH*4=起始地址00370H,范围就是00370H+3=00373H,为什么加3不是加4,因为00370H本身就占了1个储存单元,所以只是向后偏移3 .2、...

8088\/8086 中断向量表的作用是什么?
【答案】:中断向量表建立了不同的中断源与其相应的中断服务程序首地址之间的联系,它是CPU在响应中断时可以依据中断类型码自动转向中断服务程序。

相似回答