Método GetCPUInfo
Programado por Héctor A. Medina
Sintaxis
Invoke GetCPUInfo, lpCPUInfo
Función
Ejecuta la instrucción CPUID (no disponible en todos los procesadores) y devuelve información sobre el procesador.
Parámetros
lpCPUInfo
Dirección de una estructura CPUINFO (definida por Easy Code).
Valor de retorno
Eax devuelve TRUE si se ha ejecutado la instrucción, o FALSE si no.
A la vuelta, la estructura CPUINFO
se
habrá llenado con diversa información sobre el
procesador. Esta estructura está definida como sigue:
CPUINFO Struct
Description DB 32 Dup 0 ; Descripción del procesador ('GenuineIntel', 'AuthenticAMD', etc.)
Stepping DD 0 ; Stepping ID
Family DD 0 ; Familia (3 = 386, 4 = 486, 5 = Pentium, 6 = Pentium Pro)
Model DD 0 ; Modelo
CPUType DD 0 ; Reservado
ModelID DD 0 ; Vea las 'OBSERVACIONES'
FeaturesID DD 0 ; Vea las 'OBSERVACIONES'
ExFeaturesID DD 0 ; Vea las 'OBSERVACIONES'
EndS
OBSERVACIONES:
La instrucción CPUID
llena los registros Eax,
Ecx
y Edx
con diversa información
sobre el procesador. Aunque parte de la información del
registro Eax
ya está
detallada en los miembros Stepping, Family,
Model y CPUType de la
estructura, su valor
completo se almacena en el miembro ModelID. Por
otra
parte, el miembro FeaturesID contiene el valor
depositado
por CPUID
en el registro
Edx,
mientras que
ExFeaturesID contiene el valor depositado por CPUID en el registro Ecx (recuerde que el
método GetCPUInfo
guarda
los registros Ecx
y
Edx).
Estos valores se refieren a los flags de
compatibilidad
y tienen el siguiente significado:
FeaturesID:
Bit 0 | Coprocesador incluido en el chip |
Bit 1 | Extensión de modo virtual presente |
Bit 2 | Extensiones de depuración |
Bit 3 | El procesador soporta páginas de 4MB |
Bit 4 | TSC presente |
Bit 5 | El procesador tiene MSRs compatibles con Pentium |
Bit 6 | Extensión de dirección física (Intel), Soporte de PTE (Cyrix) |
Bit 7 | Excepción de comprobación de máquina |
Bit 8 | Soporta instrucciones CMPXCHG8B |
Bit 9 | APIC local incluido en el chip (Intel), Extensión de Página Global (K5) |
Bit 10 | Reservado |
Bit 11 | Prestación de llamadas rápidas de Sistema (Pentium Pro) |
Bit 12 | El procesador soporta el "Memory Type Range Register" (MTRR) |
Bit 13 | Soporte de página global |
Bit 14 | Arquitectura de comprobación de máquina |
Bit 15 | El procesador soporta la instrucción CMOV |
Bit 16 | Tabla de atributos de página |
Bit 17 | El procesador soporta páginas de 4MB para el acceso de memoria mas alta de 2GB |
Bit 18 | El procesador soporta el número de serie de procesador |
Bit 19-22 | Reservados |
Bit 23 | El procesador soporta IA MMX |
Bit 24 | El procesador soporta "Fast Save/Restore" (IA MMX-2) |
Bit 25 | Extensión de "Streaming SIMD" (IA MMX-2) |
Bit 26-31 | Reservados y llenos de ceros actualmente |
ExFeaturesID:
Bit 0 | SSE3 - SSE3 Extensions |
Bit 1-2 | Reservados |
Bit 3 | MONITOR - MONITOR/MWAIT |
Bit 4 | DS-CPL - CPL Qualified Debug Store |
Bit 5 | VMX - Virtual Machine Technology |
Bit 6 | Reservado |
Bit 7 | EST - Enhanced Intel SpeedStep® Technology |
Bit 8 | TM2 - Thermal Monitor 2 |
Bit 9 | SSSE3 - SSSE3 Extensions |
Bit 10 | CNXT-ID - L1 Context ID |
Bit 11-12 | Reservados |
Bit 13 | CMPXCHG16B |
Bit 14 | xTPR Update Control |
Bit 15 | PDCM — Perf/Debug Capability MSR |
Bit 16-18 | Reservados |
Bit 19 | SSE4.1 |
Bit 20 | SSE4.2 |
Bit 21 | Reservado |
Bit 22 | Reservado |
Bit 23 | POPCNT |
Bit 24-31 | Reservados |