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