浮点乘法给出-nan作为结果

时间:2018-08-18 12:58:25

标签: c assembly x86-64 inline-assembly

我有以下代码:

float res = 0.0f;
asm volatile("fld %0\n"
             "fmulp\n"
             "fmulp\n"
             : "&t"(res)
             : "0"(1.2));

然后我用以下语句打印res

printf("%f ", res);

打印正确的结果,而不是1.728,而是打印-nan。但是,只有一条fmulp指令,它的值为1.44。有人知道我的内联汇编有什么问题吗?

我只想将一个常量加载到寄存器中并乘以几次。出于充分的理由,我必须使用内联汇编,而不能使用常规代码。

0 个答案:

没有答案