0

在运行时如何在 x86 汇编器中使用单精度浮点数。我知道您可以在编译期间使用 .float 汇编程序指令来包含静态浮点数,但是您将如何处理用户以 10 为基数输入浮点数并在您的代码中使用它。

我在过去 2 天里做了一些阅读,并将以 10 为底的浮点数与指数和 massisia 相互转换是有意义的,但我实际上是否必须编写一个函数来来回转换它们以将它们与浮点数一起使用(浮点运算符如如 fadd、fdiv)。

如果是这样,我想我必须把它吸起来并创建两个函数来从十进制到指数 massisia hex。

如果没有,是否有为我执行此操作的操作或说明?如果是这样,它们是什么,或者您是否可以将我链接到它们的文档页面。

感谢您抽出宝贵时间,希望这篇文章有意义。

4

2 回答 2

2

许多 C 编译器,包括 gcc,都有生成汇编语言的选项。虽然不容易,但用 C 编写这类东西并使用编译器来获得汇编语言,然后您可以根据自己的需要进行调整,难度要小得多。

注意非规范化数字和带符号的零。他们可能需要特殊处理。

您至少可以像在汇编语言中一样学习 C 中涉及的方法。在汇编语言中,由于所有杂乱的细节,很难看到全局。除非您绝对别无选择,否则我不会尝试直接用汇编语言编写类似的东西。

于 2013-08-03T01:44:46.383 回答
1

如果您正在谈论用户输入 - 那么答案很明确。用户不能输入浮点数。用户总是输入字符串。(或者更准确地说——用户总是输入击键,但无论如何任何体面的操作系统都会为你将这些转换为字符串)

因此,您始终必须将字符串转换为数字 - 整数、浮点数或任何其他格式。

大多数高级语言都使这种转换调用透明,但在汇编语言中,您必须显式地进行转换。

这是另一个讨论您使用什么转换功能。这取决于您的目标和运行环境。您可以自己编写这些函数。或者使用标准 C 或任何其他语言函数提供的这些。或者使用操作系统提供的库。

于 2013-08-03T06:45:26.433 回答