Я собираюсь предположить, что наличие fldz
внутри цикла, вероятно, по крайней мере, часть вашей проблемы.
Ваш цикл добавления чисел выглядит немного ... странно для меня.Я думаю, что я бы использовал что-то вроде этого [предупреждение: я в основном использую MASM, поэтому я использовал его синтаксис здесь ...]:
add_array proc
mov esi, [ebp]
mov ecx, [ebp+12] ; I'm assuming these are the right offsets
fldz
add_loop:
fadd qword ptr [esi]
add esi, 8
dec ecx
jnz add_loop
fstp result
ret
add_array endp