Образец CPUID: определение возможностей ЦП
Образец CPUID содержит программу, в которой с помощью инструкции CPUID определяются возможности используемого ЦП.
В образце используется функция int _cpuid(_p_info *pinfo), возвращающая сведения о ЦП. Возвращаемое значение типа int представляет собой битовую маску флагов основных возможностей процессора. В ней могут быть установлены следующие биты:
#define _CPU_FEATURE_MMX 0x0001
#define _CPU_FEATURE_SSE 0x0002
#define _CPU_FEATURE_SSE2 0x0004
#define _CPU_FEATURE_3DNOW 0x0008
Примечание по безопасности |
---|
Этот пример кода иллюстрирует концепцию и содержит только код, относящийся к этой концепции. Он может не отвечать требованиям безопасности для конкретных условий, и его не следует использовать в точности в том виде, в каком он приведен. Чтобы проект был безопасным и надежным, рекомендуется добавить код обеспечения безопасности и код обработки ошибок. Корпорация Майкрософт предоставляет этот пример кода на условиях "КАК ЕСТЬ", без каких-либо гарантий. |
Чтобы получить образцы и инструкции по их установке, выполните следующие действия.
Доступ к примерам из Visual Studio
В меню Справка выберите пункт Примеры.
По умолчанию эти примеры устанавливаются в папку диск:\Program Files\Microsoft Visual Studio 10.0\Samples\.
- Самая последняя версия этого примера и полный список примеров представлены на странице Visual Studio Samples на веб-сайте MSDN.
Построение и запуск образца
Построение и запуск этого образца
Откройте решение cpuid.sln.
В меню Построение выберите команду Построить.
Из меню Отладка выберите пункт Запуск без отладки.
Пример выходных данных программы
Образец включает файл test.cpp, который просто вызывает _cpuid и выводит значения в результирующей структуре _p_info. Например, на компьютере с процессором Pentium III, поддерживающем MMX и SSE, выходные данные программы могут выглядеть так:
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