我们可以用中断类型码,在中断向量表中找到中断处理程序的入口。找到这个入口地址的最终目的是用它设置CS和IP,使CPU执行中断处理程序。用中断类型码找到中断向量,并用它来设置CS和IP,这个工作是由CPU的硬件自动完成的。CPU硬件完成这个工作的过程被称为中断过程。
下面是8086CPU在收到中断信息后,所引发的中断过程。
2)标志寄存器的值入栈(因为在中断过程中要改变标志寄存器的值,所以先将其保存在栈中)
3)设置标志寄存器的第8位TF和第9位IF的值为0
4)CS的内容入栈
5)IP的内容入栈;
6)从内存地址为中断类型码 4和中断类型码 4+2的两个字单元中读取中断处理程序的入口地址设置IP和CS。
可以简洁的描述如下:
1)取得中断类型码N
2)pushf
3)TF=0,IF=0
4)push CS
5)push IP
中断类型码:,其实就是中断号,对不同的中断服务程序不同的名称记号,以调用该中断程序.中断向量:指向中断服务程序的入口地址.一个向量代表的入口地址为4个字节.
中断向量表:由于存在多个中断请求,相应有多个中断服务程序,即有多个存放这些程序的入口地址(即中断向量).为此系统在内存的特定区域安排一张中断向量表,专门存放所有的中断向量.此表即中断向量表.
以上三者关系:中断向量=[中断号X4], 其中方括号的含义是内存单元的内容.(即中断向量表刚好存放在内存绝对地址0开始的位置)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)