x86 异常和标志

x86 异常和标志

请告诉我,我知道当你除以零时,适当的标志会在 CPU 标志寄存器中设置。但今天我读到有特殊的中断向量(我认为是 IVT 中的前 16 个)用于除以零这样的情况。所以,我想问的是,任何导致改变某些标志的情况是否也会触发适当的中断?因为在学校,我们使用条件跳转来检查进位标志是否已设置,我不记得有某些中断由此触发。所以我现在很困惑。

答案1

中断有两种类型。

第一类是用于发出硬件事件信号的中断,例如硬件计时器已到期或硬盘控制器已完成将数据传输到内存。

第二种是用于发出某些意外情况信号的中断。一些示例包括:访问无效内存、除以零(实际上是“除法溢出”,不仅在除以零时发生,而且在将非常大的值除以非常小的值时也会发生)、断点指令、硬件断点等。当 CPU 无法完成当前指令时,会引发此类异常,通常会导致终止当前进程或中断调试器。它们实际上与 CPU 标志无关,后者保存最新指令的结果。

相关内容