CPUID, exemple : détermine les capacités de l'unité centrale
L'exemple CPUID fournit une routine qui utilise l'instruction CPUID pour déterminer les capacités de l'unité centrale utilisée.
Cet exemple met en œuvre la fonction int _cpuid(_p_info *pinfo) qui retourne des données concernant l'unité centrale. La valeur de retour de int est un masque de bits fournissant des indicateurs pour les principales fonctionnalités du processeur. Les bits suivants peuvent être définis :
#define _CPU_FEATURE_MMX 0x0001
#define _CPU_FEATURE_SSE 0x0002
#define _CPU_FEATURE_SSE2 0x0004
#define _CPU_FEATURE_3DNOW 0x0008
Note de sécurité |
---|
Cet exemple de code est destiné à illustrer un concept ; il présente uniquement le code qui se rapporte spécifiquement à ce concept. Il est possible qu'il ne réponde pas aux exigences de sécurité d'un environnement spécifique, et ne doit pas être utilisé exactement comme indiqué. Nous vous recommandons d'ajouter du code de sécurité et de gestion des erreurs afin de renforcer la sécurité et la fiabilité de vos projets. Microsoft fournit cet exemple de code « EN L'ÉTAT » sans aucune garantie. |
Pour obtenir des exemples et des instructions d'installation :
Pour accéder aux exemples de Visual Studio
Dans le menu Aide, cliquez sur Exemples.
Par défaut, ces exemples sont installés sous lecteur:\Program Files\Microsoft Visual Studio 10.0\Samples\.
- Pour obtenir la version la plus récente de cet exemple et la liste des autres exemples, consultez Exemples Visual Studio (page éventuellement en anglais) sur le site Web MSDN.
Génération et exécution de l'exemple
Pour générer et exécuter cet exemple
Ouvrez la solution cpuid.sln.
Dans le menu Générer, cliquez sur Générer.
Dans le menu Déboguer, sélectionnez Exécuter sans débogage.
Résultat de l'exemple
Cet exemple comprend un fichier test.cpp qui appelle simplement _cpuid et renvoie les valeurs du struct _p_info résultant. Par exemple, sur un ordinateur Pentium III qui prend en charge MMX et SSE, le résultat du programme ressemblerait à ceci :
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