【问题标题】:assembly x86 floating point operations汇编 x86 浮点运算
【发布时间】:2013-05-15 13:34:45
【问题描述】:

我正在尝试了解这些操作的工作原理......

例如,如果我有一个带有值的堆栈

5.0 , 2.0 , 3.0 , 8.0
ST0 , ST1 , ST2 , ST3

这些操作的结果是什么?

1,时尚 2、fmul 3、fst ST1

我发现 fadd 和 fmul 取 ST0 和 ST1 并执行操作...所以结果是

1, 7.0 , 3.0 , 8.0 
2, 10.0 , 3.0 , 8.0

我说的对吗? :)

我也不知道“fst”在做什么以及它是如何工作的......所以如果有人可以在这个例子中为我解释它会非常有帮助......

非常感谢

【问题讨论】:

标签: assembly floating-point x86


【解决方案1】:

您应该阅读intel instruction set reference 以了解每条指令的作用。另外我推荐Simply FPU,因为它是一个很棒的教程。

此外,您可以在调试器中运行该东西,然后自己看看发生了什么:

【讨论】:

    【解决方案2】:

    我不知道无参数 fadd 或无参数 fmul

    fst ST1ST0 复制到ST1

    【讨论】:

    • 首先,非常感谢您的回复:) 所以这些示例的 fst ST1 的结果是 5.0 、 5.0 、 3.0 、 8.0 ? :)
    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 2020-02-28
    相关资源
    最近更新 更多