ASM x64 scanf printf double, GAS
Я не могу понять, почему этот код не работает для меня. Мне нужно использовать функцию scanf для двойного и затем printf для того же двойного. При использовании этого кода результаты не являются хорошими. Я вижу довольно случайные символы.
.data
d1: .double
format: .asciz "%lf\n"
format2: .asciz "%lf"
.text
.globl main
main:
subq $8, %rsp
#scanf
movq $0, %rax
movq $d1, %rsi
movq $format2, %rdi
call scanf
addq $16, %rsp
#printf
movq $1, %rax
movsd d1, %xmm0
movq $format, %rdi
call printf
addq $16, %rsp
#exit
movq $1, %rdi
xorq %rax, %rax
call exit