Сумма с использованием регистров xmm с использованием fasm - linux:
$./fasm file.asm
$ gcc -s file.o -o file -lm
Результат должен быть 14, но я получил 7.000000000000000000000000000000
.
Это исходный код:
format elf64
extrn printf
section '.data' writeable align 16
rad dq 7.0
fmt db "%.30lf",0ah,0
section '.text' executable align 16
public main
main:
push rbp
mov rbp,rsp
pxor xmm0,xmm0
movsd xmm0,[rad]
pxor xmm2,xmm2
movsd xmm2,[rad]
addsd xmm2,xmm0
mov rax,1
mov rdi,fmt
call printf
mov rsp,rbp
pop rbp
ret