如何编写带浮点的内联汇编

时间:2018-08-01 11:55:10

标签: gcc assembly floating-point x86 inline-assembly

我正在编写一个简单的程序,将一个浮点数的值分配给另一个浮点数。

float a = 1;
float b = 2;
b=a;

我想将“ b = a”行转换为内联汇编。我写了以下内容:

asm volatile("movss %1, %%xmm0 \n"
             "movss %%xmm0, %0"
             :"=f"(b)
             :"f"(a)
             :"xmm0");

它出现以下错误:

a.c:8:17: error: output constraint 0 must specify a single register
                 asm volatile("movss %1, %%xmm0 \n"

有人可以帮助我解决此错误的含义以及如何进行调试吗?

P.S-如果有人需要CPU架构信息。

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8

谢谢

0 个答案:

没有答案