RDTSC sta per Read Time Stamp Counter. È una istruzione assembly supportata dai microprocessori Pentium che restituisce un numero intero da 64 bit contenente un timer interno ad alta precisione. Con questo metodo è possibile calcolare esattamente la velocità in Mhz (milioni di cicli per secondo) della propria CPU.

La funzione principale rdtsc() ritorna un tipo __int64 contenente il dato appena restituito dal processore.

unsigned __int64 rdtsc()
{
        unsigned __int64 x;
#ifdef _MSC_VER
        unsigned __int64 *dest = &x;
        __asm
        {
                _emit 0xf
                _emit 0x31
                mov esi, dest
                mov [esi], eax
                mov [esi+4], edx
        }
#else
    __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
#endif
    return x;
}
Allegati