gpt4 book ai didi

c++ - CPUID 的内在信息之类的信息?

转载 作者:IT老高 更新时间:2023-10-28 22:24:54 24 4
gpt4 key购买 nike

考虑到我正在使用 C++ 进行编码,如果可能的话,我想使用类似 Intrinsics 的解决方案来阅读有关硬件的有用信息,我的担忧/考虑是:

  • 我对汇编不太了解,仅获取此类信息将是一笔可观的投资(虽然它看起来像 CPU,但它只是关于翻转值和读取寄存器。)
  • 至少有 2 种流行的 asm 语法(Intel 和 AT&T),所以它是零散的
  • 奇怪的是,如今 Intrinsics 比 asm 代码更受欢迎和受支持
  • 目前我所关注的并非所有编译器都支持内联 asm,MSVC 64 位就是其中之一;恐怕我在深入挖掘我必须使用的不同编译器的功能集时会发现其他类似的缺陷。
  • 考虑到我认为押注 Intrinsics 对我来说更有效率,它也应该比任何 asm 代码更容易。

我要回答的最后一个问题是:如何用内在函数做类似的事情?因为除了 CPUID 操作码之外我没有找到任何其他信息来获取此类信息。

最佳答案

经过一番挖掘I have found gcc 特有的有用的内置函数。

唯一的问题是这种功能真的很有限(基本上你只有2个功能,1个用于CPU“名称”,1个用于寄存器组)

一个例子是

#include <stdio.h>

int main()
{
if (__builtin_cpu_supports("mmx")) {
printf("\nI got MMX !\n");
} else
printf("\nWhat ? MMX ? What is that ?\n");
return (0);
}

显然这个内置函数也可以在 mingw-w64 下工作。

关于c++ - CPUID 的内在信息之类的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17758409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com