La Web del Programador: Comunidad de Programadores
 
    Pregunta:  15754 - COMO PUEDO SABER LA VELOCIDAD DEL PROCESADOR EN C
Autor:  Hervi Molina
Estoy buscando la forma de determinar la velocidad desde un programa en C, si alguien sabe porfavor me lo diga.

  Respuesta:  Claudio Romero
En realidad el ejemplo es C++ Builder 3, no de C pero por si te sirve
aca hay un fragmento del fuente. El programa completo lo envie para
bajarlo zipeado.

Compila en Borland C++ Builder 3, bajo procesadores Pentium o
superiores.

int Calcula_MHZ_procesador()
{
unsigned long HI_inicio,LO_inicio,C;double cantidad;
asm
{
db 0x0F, 0x31 // opcode for RDTSC
mov HI_inicio,edx
mov LO_inicio,eax
}
Sleep(500);
asm
{
db 0x0F, 0x31 // opcode for RDTSC
sub eax,LO_inicio
jnc @no_carry
dec edx
@no_carry:
sub edx,HI_inicio
mov ecx,1000 // en eax cuantos miles de ciclos pasaron en medio seg.
div ecx //edx:eax / ecx
mov C,eax
}
cantidad=C;
cantidad=(cantidad / 1000)*2;
return INT(cantidad);
}

Llamada de la funcion. (Devuelve por ej 301 serian mhz)
Button1->Caption=IntToStr(Calcula_MHZ_procesador());

Los fuentes y el ejecutable en C++ Builder se pueden bajar aqui http://www.gratisweb.com/qhm/MHZ_procesador_exe.zip

Saludos