更新时间:2024-05-21 17:43
内部中断是一个算法指令,是由软中断指令启动的中断,包括被零除中断。
※ 由软中断指令启动的中断;
※ 在一定条件下由CPU自身启动的中断。
※ 被零除中断(INT 0):
执行除法指令时,出现除数为0或商超过寄存器所能表达的范围,则产生类型为0 的内部中断。它是优先级最高的内部中断。
※ 单步中断(INT 1):
当TF=1且IF=1时每执行一条指令就引起一次中断,程序控制将转入单步中断服务 程序。单步中断方式是一种有用的调试手段,可以跟踪指令流程,从而确定程序出错的位置。
※ 溢出中断(INTO INT 4):
若指令执行结果使溢出标志位置1(OF=1),则在执行溢出中断指令 (INTO)时,引起类型4的内部中断。与被零除中断不同的是,出现溢出状态时不会由上一条指令自动 产生中断,必须由INTO指令执行溢出中断。
※ 断点中断(INT 3):
8086/8088指令中有一条单字节中断指令(INT 3),执行后CPU转向执行一个 断点中断服务程序。使用该指令可以在程序的任何地方设置断点,从而在调试程序时检查程序的运行结果。
※ 指令中断:
软件中断调用 (INT n ),用户定义的双字节中断指令,第一个字节为操作码,第2个字节n是 中断类型号。
1. 内部中断由一条指令INT n产生中断类型码或者由指令规定,或者是预定的。
2. 不执行INTA总线周期,CPU也不发出响应信号INTA。
3. 除单步中断外,内部中断无法用软件禁止。
4. 除单步中断外,内部中断比外部中断具有更高的优先级别。