Я ищу способ проверить, поддерживает ли мой процессор инструкции AES-NI.Я обнаружил в Интернете много вещей, которые работали, но многие из них были встроенным ассемблерным кодом, и поскольку я работаю в Microsoft Visual Studio и собираю в x64, это не работает.Visual Studio не поддерживает встроенный ассемблерный код x64, и x64 имеет для меня решающее значение.
Итак, я нашел встроенную функцию __cpuid ().Дело в том, что я не знаю ни слова о сборке / внутреннем использовании и т. Д. (Я просто скопировал код, который нашел)
Так что я здесь, чтобы спросить вас о коде нижеЯ написал самостоятельно, используя фрагменты кода в Интернете.Вывод «AES-Ni поддерживается», но это не значит, что мой код верен и действительно восстанавливает AES-NI емкость моего процессора.
int cpuInfo[4] = { -1 };
__cpuid(cpuInfo, 1);
_Bool returned = ((cpuInfo[3] & 0x2000000) != 0);
if (returned == 1)
printf("AES-NI supported");
else
printf("AES-NI not-supported");