У меня эти простые функции в ASM и C. Я хочу вызвать функцию ASM из кода C для двойного. Я думаю, что возвращаемое значение из ASM следует хранить в XMM0, но то, что на самом деле произошло то, что мое возвращение значение берется из бараков или если Ракс не установлен, я получаю 1.Вызов функции ASM x64 из C (двойной), 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