我正在寻找解决方案,如何检查CPU 上的 aes-ni是否可用。我需要把这些信息放在我的应用程序中,所以我不是在寻找任何 CPU-Z、bash 命令或其他东西。我知道它被视为aes标志。我不知道如何在汇编或 c 中检查它。主应用程序是用 C# 编写的,但这并不重要。
问问题
3175 次
2 回答
4
该信息由cpuid
指令返回。传入eax=1
并输入第 25 位ecx
将显示支持。有关详细信息,请参阅 intel 指令集参考。示例代码:
mov eax, 1
cpuid
test ecx, 1<<25
jz no_aesni
此外,您可能只是尝试执行它并捕获异常。
于 2014-11-28T18:26:17.727 回答
2
在视觉 C++ 中
static bool GetNNICapability()
{
unsigned int b;
__asm
{
mov eax, 1
cpuid
mov b, ecx
}
return (b & (1 << 25)) != 0;
}
于 2016-03-31T22:24:01.240 回答