8.3.1 8086的中断分类
8.3.1.1 软件中断
软件中断又称为内中断,它通常由三种情况引起:
(1) 由中断指令INT引起。
(2) 由于CPU的某些错误而引起。
(3) 为调试程序(DEBUG)设置的中断。
单步是一种很有用的调试方法。当标志位TF置为1时,每条指令执行后,CPU自动产生类型号为1的中断-单步中断。产生单步中断时,CPU同样自动地将FLAGS、CS和IP的内容保存入栈,然后清除TF、IF,于是,当进入单步中断处理程序后,就不是处于单步方式了,它将按正常方式运行中断处理程序。在单步处理程序结束时,原来的FLAGS从堆栈中取回,又把CPU重新置成单步方式。
使用单步中断可以一条指令一条指令地跟踪程序的流程,观察CPU每执行一条指令后,各个寄存器及有关存储单元的变化,从而指出和确定产生错误的原因。
断点中断也是供DEBUG调试程序使用的,通常调试程序时,把程序按功能分成几段,然后每段设一个断点。当CPU执行到断点时便产生中断,这时程序员可以检查各寄存器及有关存储单元的内容。
在上述内中断中,INT指令和INTO指令产生的中断,以及除法错中断都不能被禁止,并且比任何外部中断的优先权都高。
|