Mètode GetCPUInfo
Programat per Héctor A. Medina
Prototip
GetCPUInfo Proto lpCPUInfo:DWord
Sintaxi
Invoke GetCPUInfo, lpCPUInfo
Funció
Executa la instrucció CPUID (no disponible a tots els processadors) i torna informació sobre el processador.
Paràmetres
lpCPUInfo
Adreça d'una estructura CPUINFO (definida per l'Easy Code).
Valor de retorn
Eax torna TRUE si s'ha executat la instrucció, o FALSE si no.
A la tornada, l'estructura CPUINFO
s'haurà omplert amb diversa informació sobre el
processador. Aquesta estructura està definida de la
següent
manera:
CPUINFO Struct
Description Byte 32 Dup(0) ; Descripció del processador ('GenuineIntel', 'AuthenticAMD', etc.)
Stepping DWord 0 ; Stepping ID
Family DWord 0 ; Família (3 = 386, 4 = 486, 5 = Pentium, 6 = Pentium Pro)
Model DWord 0 ; Model
CPUType DWord 0 ; Reservat
ModelID DWord 0 ; Vegeu les 'OBSERVACIONS'
FeaturesID DWord 0 ; Vegeu les 'OBSERVACIONS'
ExFeaturesID DWord 0 ; Vegeu les 'OBSERVACIONS'
CPUINFO EndS
OBSERVACIONS:
La instrucció CPUID
omple els registres Eax,
Ecx
i Edx
amb diversa informació
sobre el processador. Tot i que part de la informació
del registre Eaxja
està detallada als membres Stepping,Family,
Model i CPUType de l'estructura,
el seu valor
complet s'emmagatzema al membre ModelID. D'altra
banda,
el membre FeaturesID conté el valor
dipositat
per CPUID
al registre
Edx,
mentre que
ExFeaturesID conté el valor dipositat
per CPUID
al registre
Ecx
(recordeu que el
mètode GetCPUInfo
desa
els registres Ecx
i
Edx).
Aquests
valors es refereixen als flags de compatibilitat i
tenen
el següent significat:
FeaturesID:
Bit 0 | Coprocessador inclòs al xip |
Bit 1 | Extensió de mode virtual present |
Bit 2 | Extensions de depuració |
Bit 3 | El processador suporta pàgines de 4MB |
Bit 4 | TSC present |
Bit 5 | El processador té MSRs compatibles amb Pentium |
Bit 6 | Extensió d'adreça física (Intel), Suport de PTE (Cyrix) |
Bit 7 | Excepció de comprovació de màquina |
Bit 8 | Suporta instruccions CMPXCHG8B |
Bit 9 | APIC local inclòs al xip (Intel), Extensió de Pàgina Global (K5) |
Bit 10 | Reservat |
Bit 11 | Prestació de crides ràpides de Sistema (Pentium Pro) |
Bit 12 | El processador suporta el "Memory Type Range Register" (MTRR) |
Bit 13 | Suport de pàgina global |
Bit 14 | Arquitectura de comprovació de màquina |
Bit 15 | El processador suporta la instrucció CMOV |
Bit 16 | Taula d'atributs de pàgina |
Bit 17 | El processador suporta pàgines de 4MB per a l'accés de memòria més alta de 2GB |
Bit 18 | El processador suporta el número de sèrie de processador |
Bit 19-22 | Reservats |
Bit 23 | El processador suporta IA MMX |
Bit 24 | El processador suporta "Fast Save/Restore" (IA MMX-2) |
Bit 25 | Extensió de "Streaming SIMD" (IA MMX-2) |
Bit 26-31 | Reservats i plens de zeros actualment |
ExFeaturesID:
Bit 0 | SSE3 - SSE3 Extensions |
Bit 1-2 | Reservats |
Bit 3 | MONITOR - MONITOR/MWAIT |
Bit 4 | DS-CPL - CPL Qualified Debug Store |
Bit 5 | VMX - Virtual Machine Technology |
Bit 6 | Reservat |
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 | Reservats |
Bit 13 | CMPXCHG16B |
Bit 14 | xTPR Update Control |
Bit 15 | PDCM — Perf/Debug Capability MSR |
Bit 16-18 | Reservats |
Bit 19 | SSE4.1 |
Bit 20 | SSE4.2 |
Bit 21 | Reservat |
Bit 22 | Reservat |
Bit 23 | POPCNT |
Bit 24-31 | Reservats |