中断信息可以来自CPU的内部和外部, 当CPU的内部有需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。在http://t.csdn.cn/jihpG,我们讲解了中断过程和两种内中断的处理。
这一章中, 我们讲解另一种重要的内中断, 由int指令引发的中断。
int指令
int指令的格式为:int n
n为中断类型码, 它的功能是引发中断过程。
CPU执行int n指令, 相当于引发一个n号中断的中断过程, 执行过程如下:
(1)取中断类型码n;
(2)标志寄存器入栈,IF=0,TF=0;
(3)CS、IP入栈;
(4)(IP)=(n*4),(CS)=(n*4+2)
可以在程序中使用int指令调用任何一个中断的中断处理程序。例如, 下面的程序:
这个程序在DOS方式下执行时, 将在屏幕中间显示一个“!”,然后显示“Divide overflow”后返回到系统中。“!”是我们编程显示的, 而“Divide overflow”是哪里来的呢?我们的程序中又没有做除法, 不可能产生除法溢出。