0
我在ASM和C中有這個非常簡單的函數。我想從C代碼中調用ASM函數進行加倍。我覺得從ASM返回值應存放在XMM0,但什麼是真正發生的是,我的返回值被從兵營採取或如果RAX沒有設置,我得到1從C(雙)調用ASM x64函數,GAS
C代碼:
#include <stdio.h>
int main() {
double a = 3.14;
double b = add(a);
printf("%lf\n", b);
return 0;
}
ASM功能:
.type add, @function
.globl add
add:
#movq $1, %rax
addsd %XMM0, %XMM0
ret
它有什麼問題?欣賞所有提示。
非常感謝! – zderzak678