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;
}