汇编语言中断向量表

中断向量表在内存中保存,其中存放着256个中断源所对应的中断处理程序的入口,如图12.1所示。

511遇见

可以看到,CPU只要知道了中断类型码,就可以将中断类型码作为中断向量表的表项号,定位相应的表项,从而得到中断处理程序的入口地址。
可见,CPU用中断类型码,通过查找中断向量表,就可以得到中断处理程序的入口地址。在这个方案中,一个首要的问题是,cPu如何找到中断向量表?现在,找到中断向量表成了通过中断类型码找到中断处理程序入口地址的先决条件。
中断向量表在内存中存放,对于8086PC机,中断向量表指定放在内存地址0处。从内存。000:0000到0000:03FF的1024个单元中存放着中断向量表。能不能放在别处呢?
不能,如果使用8086CPU,中断向量表就必须放在0000:0000-0000:03FF单元中,这是规定,因为8086CPU就从这个地方读取中断向量表。
那么在中断向量表中,一个表项占多大的空间呢?一个表项存放一个中断向量,也就是一个中断处理程序的入口地址,对于8086CPU,这个入口地址包括段地址和偏移地址,所以一个表项占两个字,高地址字存放段地址,低地址字存放偏移地址。
检测点 12.1

(1)用Debug查看内存,情况如下:

0000:0000 68 10 A7 00 8B 01 70 00-16 00 9D 03 8B 01 70 00

则3号中断源对应的中断处理程序入口地址为:0070:018B。
(2)存储N号中断源对应的中断处理程序入口的偏移地址的内存单元的地址为:0000:N*4.
存储N号中断源对应的中断处理程序入口的段地址的内存单元的地址为:0000:N*4+2.


发布日期:

所属分类: 编程 标签:  


没有相关文章!