Согласно руководству по использованию intel, инструкция выдает исключение #UD, если CPUID.(EAX=14H, ECX=0):EBX.PTWRITE [Bit 4] = 0
Как проверить, является ли CPUID (EAX = 14H, ECX = 0)?
Как проверить эти значения?
Если я использую int __get_cpuid (unsigned int __level, unsigned int *__eax, unsigned int *__ebx, unsigned int *__ecx, unsigned int *__edx)
от <cpuid.h>
, то какие должны быть аргументы?
Пожалуйста, исправьте его. Это должно быть: ((ebx & 0x10) == 0) Я провел дни, выясняя, почему мой код дает мне незаконное исключение инструкции, даже если оно поддерживается. Наконец, скомпилировался ваш код с другим компилятором, и он дал мне предупреждение о приоритете оператора. lol – pizzaEatingGuy
К сожалению, об этом. – Jester