Моя цель здесь - добавить 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