8086系统中,中断类型码、中断向量、中断向量表的关系是什么?
中断类型代码:其实就是中断号,是不同中断服务程序调用时的不同名称标记中断程序:指中断服务程序的输入地址向量为4个字节中断向量表:因为有有多个中断请求,就有多个中断服务程序,即有多个中断服务程序存储这些程序。输入地址(即中断向量):为此,系统在内存的某个区域安排了一个中断向量表来存储所有三个中断向量:中断向量=[中断号表中绝对开头的确切中断向量内存地址0)。
汇编语言假设对应某个的中断处理程序入口地址为83A00H,内存第14H~1BH的依次为:
存储器14H~1BH的如下。应该是00H3AH00H80H,对吧?从你的问题中我们可以看出,中断处理程序的入口地址是83A00H,其逻辑地址是8000H:3A00H。
因此,14H~1BH中存放的值00H3AH00H80H就是中断向量,14H就是中断向量地址。
中断类型号=中断向量地址/4=14H/4=5因此中断类型号为5。
中断类型码的计算
在已知的中断向量表中,001C4H存储2200H,001C6H存储3040H。
中断类型代码为(71H)。
中断服务程序输入地址的逻辑地址和物理地址为(3040H:2200H)。
32600)H。
说明:001C4H/4=71H
中断服务程序输入地址的存储格式是先偏移地址,后段地址,所以是3040H:2200H
物理地址:30400H+2200H=32600H。
扩展信息
中断类型代码是一个8位二进制数,即0~255。
所有中断类型的服务程序的输入地址都放置在中断向量表(即内存的最低1KB)中。
根据中断类型代码×4,获取中断向量表中中断类型服务程序的输入地址,然后提取该地址并传送给相应的子程序。
例如:
时钟中断:08H
键盘中断:09H