中断源的
识别标志,可用来形成相应的
中断服务程序的入口地址或存放中断服务程序的首地址称为
中断向量。在Pc/AT中由硬件产生的中断
标识码被称为
中断类型号(当然,中断类型号还有其他的产生方法,如指令中直接给出、
CPU自动形成等),即在
中断响应期间
8259A产生的是当前请求中断的最高优先级的中断源的中断类型号。中断类型号和中断向量之间有下面的关系: 中断类型号×4=存放中断向量的首地址 有了存放中断向量的首地址,从该地址开始的4个
存储单元中取出的就是中断服务程序的入口
是指
中断服务程序入口地址的
偏移量与
段基址,一个中断向量占据4字节空间。中断向量表是8086
系统内存中最低端1K字节空间,它的作用就是按照
中断类型号从小到大的
顺序存储对应的中断向量,总共存储256个中断向量。在
中断响应过程中,CPU通过从
接口电路获取的中断类型号(中断向量号)计算对应中断向量在表中的位置,并从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口地址。
80x86系统是把所有的中断向量集中起来,按中断类型号从小到大的顺序存放到
存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表,即中断服务程序入口地址表。
由于中断向量表可以在操作系统层面灵活修改,因此,不同的系统的中断向量表可能是不同的。此外,
intel在CPU的
保护模式下,占用了0x00 ~ 0x1F共32个
中断号,在
Linux下,是从0x20开始用于系统自身的中断的,包括
8259芯片的中断重置。
在
DOS系统(实模式)下,从0x20开始,用于操作系统本身。
在
Linux下(保护模式),没有使用BIOS设置的中断向量表,0x00 ~ 0x1F是CPU保护模式下的默认中断向量,而0x20开始,都是被Linux系统重新设置的。