我正在尝试熟悉 gnu 内联汇编。我编写了一个单行内联汇编来将 int 重新解释为 float。虽然这会打印正确的结果,但我想知道这是否正确。
#include <stdio.h>
int main() {
int x = 0x80000000; // -0.0
float y;
asm("vmovd %0, %%xmm0"
: "=r"(y)
: "r"(x));
printf("%f\n", y);
}
我是汇编方面的初学者。