首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查__cpuid对AES-NI的支持?

如何检查__cpuid对AES-NI的支持?
EN

Stack Overflow用户
提问于 2018-05-31 00:36:38
回答 1查看 529关注 0票数 0

我正在寻找一种方法来检查我的CPU是否支持AES-NI指令。我在互联网上发现了很多有用的东西,但它们中的很多都是内联汇编代码,因为我是在Microsoft Visual Studio下,而且我是用x64编译的,所以这不起作用。Visual Studio不支持x64内联汇编代码,而x64对我来说至关重要。

所以我找到了内部函数__cpuid()。问题是,我对汇编/内部用法等一个词都不认识。(我只是复制粘贴我找到的代码)

所以我在这里问你关于下面的代码,我是用互联网上的一些代码自己写的。输出是"AES-Ni支持“,但这并不意味着我的代码是正确的,并且真正检索到了我的CPU的AES-NI容量。

代码语言:javascript
复制
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");
EN

回答 1

Stack Overflow用户

发布于 2021-01-05 03:26:00

AES位在ECX (第25位)中,因此您应该使用cpuInfo2。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50609654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档