什么叫矢量中断?请叙述中断类型号、中断向量表和中断服务程序入口地址三者的关系?

2024-12-26 02:21:53
推荐回答(3个)
回答1:

矢量中断,当cpu读取位于0x18处的IRQ中断指令的时候,系统自动读取对应于该中断源确定地址上的指令取代0x18处的指令。

在中断响应过程中,CPU通过从接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,并从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口地址。

中断向量地址,即存储中断向量的存储单元地址,中断服务例行程序入口地址的地址。在PC/AT机中,中断向量为中断服务程序的入口地址,每个中断向量分配4个连续的字节单元,两个高字节单元存放入口的段地址CS,两个低字节单元存放入口的段内偏移量IP。

在PC/AT中,规定内存储器的最低1 KB用来存放中断向量(共256个),这一片内存区为中断向量表。



扩展资料

80x86系统把所有的中断向量集中起来,按中断类型号从小到大的顺序存放到存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表,即中断服务程序入口地址表。

由于中断向量表可以在操作系统层面灵活修改,因此,不同的系统的中断向量表可能是不同的。此外,intel在CPU的保护模式下,占用了0x00 ~ 0x1F共32个中断号,在Linux下,是从0x20开始用于系统自身的中断的,包括8259芯片的中断重置。

参考资料来源:百度百科-中断向量地址

参考资料来源:百度百科-中断向量表

参考资料来源:百度百科-矢量中断

回答2:

矢量中断。。其实就是 处理器产生中断。
会在某个寄存器里面产生对应中断的数字 1 2 3 这种。
如果处理器支持开启矢量中断功能。那么会直接跳转到中断想量表进行执行
如果不支持。。那么大家一起进入某一个中断。难后在程序里面判断哪个东西产生了中断,,难后执行对应的中断服务程序

中断类型号。。。估计和上面的数字一回事

中断向量表,,用来存放中断处理程序的一个表格。

中断服务程序入口地址。。中断产生的时候。程序会自动跳到该位置执行的地址

一般来说。。中断入口地址可能只有几个,
但是中断类型还有好多。
那么只好 很多中断类型 进入一个中断入口地址中。
这个时候就需要在中断入口的地址那边判断是那个中断,然后处理
因为这样要判断是什么中断。不能达到中断快速的目的
所有有了矢量中断和中断向量表
矢量中断的目的是。中断时候自动产生偏移量,
处理自动跳转到 中断向量表+偏移量的地址,,这样就不需要判断是什么中断。加速了中断的进入

回答3:

中断向量是中断处理子程序的入口地址,每一个中断类型对应一个中断向量,包括段地址CS和段内偏移量IP共4个字节。在8086/8088系统中,规定内存储器的最低1KB用来存放中断向量(共256个),称这一片内存区为中断向量表。
中断类型码和中断向量之间有下面的关系:中断类型码X4=存放中断向量的首地址。有了存放中断向量的首地址,从该地址开始的4个存储单元中取出的就是中断服务程序的入口地址。在中断向量表中,这些中断是按照中断类型的序号,从0单元开始顺序排序的。