| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
R. Porcar Invitado
|
Publicado: Mie 20 Dic, 2000 8:19 pm Asunto: Conocer la velocidad del procesador |
|
|
code:
int GetCycleCount() { asm { DB 0FH DB 031H } }void __fastcall TFPrinc::Button1Click(TObject *Sender) { int Start, Stop; Start = GetCycleCount(); Sleep(1000); Stop = GetCycleCount(); Label1->Caption = ( (Stop-Start) / 1000141); }
|
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Vie 23 Jul, 2004 9:15 pm Asunto: |
|
|
Hola, me da un warning:
El problema:
[C++ Warning] Unit1.cpp(24): W8070 Function should return a value
Que valor devuelve: GetCycleCount() ???
Un saludo. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 23 Jul, 2004 10:10 pm Asunto: |
|
|
Según la referencia de Intel (a partir de Pentium para arriba):
http://developer.intel.com/design/pentium/manuals/243191.htm
Opcode: 0F 31
Instruction: RDTSC
Description: Read time-stamp counter into EDX:EAX
Los registros en los que devuelve su valor son los que usa el Builder por defecto para el retorno en una función. Por lo que el aviso en este caso no es importante, si quieres puedes desactivarlo así:
| Código: | // Desactivamos el aviso
#pragma warn -rvl
__int64 GetCycleCount()
{
asm {
DB 0FH
DB 031H
}
// o puedes substituir lo de arriba por lo siguiente
// si tu versión de builder te lo permite
// asm RDTSC;
}
#pragma warn .rvl
// Lo restauramos al estado original |
Lo que si es importante es cambiar los int por __int64, ya que el valor devuelto es de 64 bits y no 32 (incluido dentro de la función de ejemplo en el OnClick: __int64 Start, Stop;). |
|
| Volver arriba |
|
 |
kalux Master


Registrado: 21 Nov 2003Mensajes: 313Ubicación: Alicante - España
|
Publicado: Sab 24 Jul, 2004 7:39 pm Asunto: |
|
|
| Gracias _Leo. |
|
| Volver arriba |
|
 |
offset Cdt

Registrado: 26 Abr 2005Mensajes: 17
|
Publicado: Mar 26 Abr, 2005 2:13 pm Asunto: |
|
|
| gracias |
|
| Volver arriba |
|
 |
jc Lt JG

Registrado: 02 Mar 2004Mensajes: 68
|
Publicado: Mie 11 May, 2005 10:36 am Asunto: Re: Conocer la velocidad del procesador |
|
|
Ultima edición por jc el Mie 11 May, 2005 10:54 am, editado 2 veces |
|
| Volver arriba |
|
 |
jc Lt JG

Registrado: 02 Mar 2004Mensajes: 68
|
Publicado: Mie 11 May, 2005 10:38 am Asunto: Re: Conocer la velocidad del procesador |
|
|
Perdón, se me ha ido la olla en el mensaje anterior, lo siento mucho.
| R. Porcar escribió: |
asm
{
DB 0FH
DB 031H
}
|
Hola:
Me podéis explicar este trozo de código, ya sea Roberto o Leo, o quien me pueda ayudar.
Yo es que programo microcontroadores también y nunca he sabido cómo funciona la orden DB (lo de "asm" está claro).
Un saludo. |
|
| Volver arriba |
|
 |
|