Esempio CPUID: determinazione delle funzionalità della CPU
Aggiornamento: novembre 2007
Nell'esempio CPUID viene fornita una routine che utilizza l'istruzione CPUID per determinare le funzionalità della CPU in esecuzione.
La funzione fornita è int _cpuid(_p_info *pinfo) che restituisce i dati relativi alla CPU. Il valore restituito da int è una maschera di bit di flag per le funzionalità principali del processore. I bit che possono essere impostati sono i seguenti:
#define _CPU_FEATURE_MMX 0x0001
#define _CPU_FEATURE_SSE 0x0002
#define _CPU_FEATURE_SSE2 0x0004
#define _CPU_FEATURE_3DNOW 0x0008
Nota sulla sicurezza: |
---|
Il codice di esempio viene fornito per illustrare un concetto e non deve essere utilizzato in applicazioni o siti Web in quanto potrebbe non rappresentare le procedure di codifica più sicure. Microsoft esclude qualsiasi responsabilità di danni diretti o indiretti qualora il codice di esempio venga utilizzato per scopi diversi da quelli a cui è destinato. |
Per ottenere gli esempi e le istruzioni per l'installazione:
In Visual Studio scegliere Esempi dal menu ?.
Per ulteriori informazioni, vedere Individuazione dei file di esempio.
La versione più recente e l'elenco completo degli esempi sono disponibili in linea alla pagina Visual Studio 2008 Samples.
È anche possibile trovare gli esempi sul disco rigido del computer. Per impostazione predefinita, gli esempi e il file Leggimi vengono copiati in una cartella nel percorso \Programmi\Visual Studio 9.0\Samples\. Per le versioni Express di Visual Studio, tutti gli esempi sono disponibili in linea.
Generazione ed esecuzione dell'esempio
Per generare ed eseguire l'esempio
Aprire il file di soluzione cpuid.sln.
Scegliere Genera dal menu Genera.
Scegliere Avvia senza eseguire debug dal menu Debug.
Output del programma di esempio
Nell'esempio è incluso un file test.cpp che chiama in modo semplice _cpuid e inserisce i valori di output nella struttura _p_info risultante. Su un computer con un processore Pentium III che supporta MMX e SSE, ad esempio, l'output del programma è simile al seguente:
C:\work\cpuid>test
v_name: GenuineIntel
model: INTEL Pentium-III
family: 6
model: 8
stepping: 3
feature: 00000003
yes _CPU_FEATURE_MMX
yes _CPU_FEATURE_SSE
no _CPU_FEATURE_SSE2
no _CPU_FEATURE_3DNOW
os_support: 00000003
yes _CPU_FEATURE_MMX
yes _CPU_FEATURE_SSE
no _CPU_FEATURE_SSE2
no _CPU_FEATURE_3DNOW
checks: 0000000f