0
私はASMとCでこの本当に単純な関数を持っています。私はCコードからASM関数をdoubleに呼び出す必要があります。C(ダブル)からASM x64関数を呼び出し、GAS
#include <stdio.h>
int main() {
double a = 3.14;
double b = add(a);
printf("%lf\n", b);
return 0;
}
:私は、私は1
Cコードを取得し、ASMからの戻り値はXMM0に格納されるべきだと思うが、何実際に起こることは、私の戻り値はRAXからか、RAXが設定されていない場合は取られていることです
ASM機能:
.type add, @function
.globl add
add:
#movq $1, %rax
addsd %XMM0, %XMM0
ret
どうしたのですか?すべてのヒントを感謝します。
ありがとうございます! – zderzak678