我们知道编译器在优化我们的代码方面越来越好,让它运行得更快,但我的问题是,有一些编译器可以优化浮点运算,以确保更高的准确性。例如,一个基本规则是在加法之前执行乘法,这是因为使用浮点数的乘法和除法不会引入像加法和减法那样大的误差,但会增加由加法和减法引入的误差的幅度,因此在许多情况下应该首先进行。所以像这样的浮点运算应更改为
y = x*a + x*b; // s
因此,我正在尝试用MIPS汇编代码编写一个程序,以帮助我更好地理解浮点加法的工作原理。我知道浮点数是如何分解成1位符号、8位指数和23位小数的。我已经编写了一个程序,它从用户那里获取两个输入,并将它们相加,除了mtc1和mfc1 (用于输入和输出)之外,不使用任何浮点指令。我的代码有bug,因为当我加1+2时,我得到2.74804688。这是我的代码(不包括用户input...the第一个浮点值在$s0中,第二个浮点值在$s1中)
#Integer implementation of f