hello,
just trying to play with inlined asm. i make a little modulo proc but it seems not faster than the classic procedure


Code: Select all
;-------------------------------------------
Procedure.l Modulo( a.l, b.l )
ProcedureReturn a - ( ( a / b ) * b )
EndProcedure
;-------------------------------------------
Procedure.l ModuloASM( a.l, b.l )
EnableASM
MOV EAX, [ESP]
CDQ
IDIV DWORD [ESP+4]
MOV EAX, EDX
ProcedureReturn
DisableASM
EndProcedure
;-------------------------------------------
Global result.l, tick.l
Procedure timing()
res = GetTickCount_()
If tick = 0
tick = res
Else
MessageRequester( "Resultat", Str(result)+" "+Str(res-tick),0)
tick = 0
EndIf
EndProcedure
;-------------------------------------------
#NBTEST = 50000000
timing()
For i=0 To #NBTEST
result = Modulo( 32, 17 )
Next
timing()
timing()
For i=0 To #NBTEST
result = ModuloASM( 32, 17 )
Next
timing()
;-------------------------------------------