我的目标是添加3个浮点数并除以3以计算平均值,然后打印结果。
它组装并执行时,我得到: 平均值是0.000000
而不是计算的平均值。
有人可以告诉我为什么显示0.000000而不是平均值吗?
%macro EXITPGM 0
mov eax, 0
call exit
%endmacro
section .data
flt1 dq 0.0
msg db "The average of the numbers is %f",10,0
section .text
global main
extern printf
extern exit
main:
push rbp
mov dword [flt1], __float64__(3.93)
mov rsi, __float64__(9.4)
mov rdx, __float64__(84.52)
add rsi, [flt1]
add rsi, rdx
mov rdx, 0
mov rax, rsi
mov rcx, 3
div rcx
mov rdi, msg
mov rax, 1
movq xmm0, rax
call printf
pop rbp
EXITPGM