在计算机级别,应用程序以二进制方式运行,然后当发生运行时错误时,它如何呈现回错误代码



我正在运行以下程序:

#include <iostream>
using namespace std;
int main()
{
    while(1)
    {
        int a;
        cin >> a;
        cout << 9/a << endl; 
    }
    return 0;
}

分步过程是

  1. 上面的代码被编译并连续转换为二进制 fotmat。
  2. 二进制代码指令逐步执行。

所以当我提供输入:0时,我在控制台上收到以下内容: 浮点异常:8

现在我的问题是,当机器执行二进制指令时,这个"浮点异常:8"是如何打印在控制台上的。

CPU 的

算术和逻辑单元 (ALU( 将包含错误标志的寄存器。除以零就是其中之一。ALU 可能会在分母或扼流圈中发现零并设置标志。

无论哪种方式,在机器级别都会发生中断,这是我们(最终(视为异常的情况。它捕获(通过中断向量(到二进制代码的一部分以进行异常处理,这是调用更高级别的异常处理的地方。

更多细节往往取决于体系结构,但可能导致管道失效。

相关内容

最新更新