このコードをコンパイルしようとすると:
#include <stdio.h>
main(int argc, char *argv[]) {
double y = 0;
__asm__ ("fldl $150;"
"fsqrt;"
"fstl %0;" : : "g" (y) );
printf("%f\n", y);
return 0;
}
次のエラーが表示されます。
sqrt.c: Assembler messages:
sqrt.c:6: Error: suffix or operands invalid for `fld'
なぜこれが機能しないのですか?浮動小数点演算で数値「150」をスタックにプッシュできないのはなぜですか?