Cpu speed mghz (win32, asm)

Description

Vitesse precise de CPU calculee en 125 milliemes de seconde.
Teste depuis P200 Win98 a bixeon sur WinServer 2008 x64.
Juste bnCpuSpeedMghz() a ajouter dans vos progs pour s'en servir.

Source / Exemple :


__declspec(naked) DWORD __stdcall bnCpuSpeedMghz()
{
  __asm {
    sub     esp, 28
    lea     eax, dword ptr[esp+8]
    push    eax
    call    dword ptr QueryPerformanceFrequency
    mov     [esp+24], esi
    test    eax, eax
    je      short cpuExit
    mov     esi, dword ptr 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
    sub     eax, dword ptr[esp+16]
    mul     ecx
    mov     eax, edx
    mov     esi, [esp+24]
    shr     eax, 16
cpuExit:
    add     esp, 28
    ret     0
  }
}

Codes Sources

A voir également

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.