where is the error?
the result is ok when _LoopFrequency=1,2,3
error:
_LoopFrequency=4, result=1.0
_LoopFrequency=5, result=6.0
_LoopFrequency=6, result=1.0
_LoopFrequency=7, result=6.0
...
_floating_pointAdd Proc uses rbx _LoopFrequency:QWORD
fninit ;; clear FPU registers and flags
fldz ;; zero st(0)
mov rbx,_LoopFrequency
fld _One_real8
fld _One_real8
faddp
@@:
fld _One_real8
faddp
fld _One_real8
faddp
fld _One_real8
faddp
fld _One_real8
faddp
fld _One_real8
faddp
sub rbx,1
jnz @B
fld _One_real8
fsubp
fstp result
invoke RtlZeroMemory,ADDR szBuffer, sizeof szBuffer
invoke FpuFLtoA64, ADDR result,40,ADDR szBuffer,SRC1_REAL Or SRC2_DIMM
invoke SetWindowText,hEdithWnd,addr szBuffer
ret
_floating_pointAdd Endp