P238 可以用中断类型码,在中断向量表中找到中断处理程序的入口。找到这个入口地址的最终目的是用它设置CS和IP,使CPU执行中断处理程序。用中断类型码找到中断向量,并用它设置CS和IP,这个工作是由CPU的硬件自动完成的。CPU硬件完成这个工作的过程被称为中断过程。
CPU收到中断消息后,要对中断消息进行处理,首先将引发中断过程。硬件在完成中断过程后,CS:IP将指向中断处理程序的入口,CPU开始执行中断处理程序。
下面是8086CPU在受到中断消息后,所引发的中断过程:
(1) (从中断信息中)取得中断类型码;
(2) 标志寄存器的值入栈(因为在中断过程中要改变标志寄存器的值,所以先将其保存在栈中);
(3) 设置标志寄存器的第8位TF和第9位IF的值为0;
(4) CS的内容入栈;
(5) IP的内容入栈;
(6) 从内存地址为中断类型码*4和中断类型码*4+2的两个字单元中读取中断处理程序的入口地址,设置IP和CS。
P251 实验12 编写0号中断的处理程序,代码如下:
程序运行结果如下图所示: