Calcul precis en 125 milliemes de seconde.
Source / Exemple :
bnGetCpuSpeed PROC
sub esp, 28
lea eax, dword ptr[esp+8]
push eax
call QueryPerformanceFrequency
mov [esp+24], esi
test eax, eax
je short cpuExit
mov esi, QueryPerformanceCounter
push esp
call esi
mov edx, dword ptr[esp+8]
mov eax, dword ptr[esp+12]
shrd edx, eax, 3
shr eax, 3
add dword ptr[esp], edx
adc dword ptr[esp+4], eax
rdtsc
mov dword ptr[esp+16], eax
mov dword ptr[esp+20], edx
milli125:
lea ecx, dword ptr[esp+8]
push ecx
call esi
mov edx, dword ptr[esp+12]
mov eax, dword ptr[esp+8]
cmp edx, dword ptr[esp+4]
jb short milli125
ja short outMilli
cmp eax, dword ptr[esp]
jb short milli125
outMilli:
rdtsc
mov ecx, 2251799814 ; DIVISION 125000
sub eax, dword ptr[esp+16]
mul ecx
mov eax, edx
mov esi, [esp+24]
shr eax, 16
cpuExit:
add esp, 28
ret 0
bnGetCpuSpeed ENDP
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.