我正在运行以下程序:
#include <iostream>
using namespace std;
int main()
{
while(1)
{
int a;
cin >> a;
cout << 9/a << endl;
}
return 0;
}
一步一步的过程是
所以当我提供输入:0时,我在控制台上收到以下信息:浮点异常:8
现在我的问题是当机器执行二进制指令时,如何在控制台上打印这个“浮点异常:8”。
CPU的算术和逻辑单元(ALU)将包含错误标志的寄存器。除以零是其中之一。 ALU可能会在分母或扼流圈中发现零并设置标志。
无论哪种方式,在机器级别都会发生中断,这是我们(最终)将其视为异常。它(通过中断向量)捕获到一段二进制代码以进行异常处理,这是从中调用更高级别的异常处理的地方。
更多细节往往取决于体系结构,但可能导致管道无效。