assembly - 如何在 68k 汇编或一般情况下实现浮点 IEEE754 除法?

标签 assembly floating-point division 68000

我必须为 IEEE754 格式的 68k 处理器创建一个浮点实现,并且我已经弄清楚如何执行所有其他基本运算(十进制转换、加法、减法、乘法),但我不能弄清楚如何进行除法。根据我的理解,你应该先除尾数,然后减去指数。然而,如果你除尾数,你会得到另一个 float ,这绝对不是我想要的,也不能使用(因为 68k 处理器提供的唯一除法函数显示整数除法的结果,以及模余数答案)。

任何人都可以提供一个如何在 68k 处理器上进行这种除法的示例,或者一般情况下我的限制吗?

最佳答案

Here您可以找到 IEEE 754 的准确算法和解释 float 学...

  • 浮点型到整数的转换

  • 整数到浮点的转换

  • 标准化

  • 加/减

  • 乘法

  • 除法

    ...不幸的是不适用于 68k CPU,但算法是相同的。

这里有一个 24 位 FP 除法的流程图 a = a/b :

enter image description here

关于assembly - 如何在 68k 汇编或一般情况下实现浮点 IEEE754 除法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5386218/

相关文章:

assembly - ASM 循环更快?

python - 修复 *displaying* 在 python 中 float 时的精度问题

c - 如何仅使用移位和加法进行乘法和除法?

c++ - 整数除法优化 MSVC C++

c++ - 在 C/C++ 程序中使用汇编程序优化某些功能真的值得吗?

c# - 为什么 if( !A && !B ) 不能优化为单个 TEST 指令?

c++ - 在 C++ 中使用乘法累加指令内联汇编

haskell - (Haskell)除以Integer而不是double的结果

c# - XML 中的 float

math - Haskell 中除以零