Code: Select all
ntimes=1e6
a=999999999999999999
b=567890123456789
atime=ElapsedMilliseconds()
For i=1 To ntimes
Next
btime=ElapsedMilliseconds()
For i=1 To ntimes
c=a/b
Next
c=0
ctime=ElapsedMilliseconds()
For i=1 To ntimes
;c=a/b
EnableASM
MOV r15,qword [v_a]
PUSH qword [v_b]
MOV rax,r15
POP rcx
!CQO ;trouble spot
DIV rcx
MOV r15,rax
MOV qword [v_c],r15
DisableASM
Next
dtime=ElapsedMilliseconds()
OpenConsole()
PrintN("nsec/loop")
PrintN(Str(btime-atime)+" "+Str(ctime-btime)+" "+Str(dtime-ctime))
PrintN(Str(a/b)+ " "+Str(c))
Input()
End