Windows 用の新しいコードを書いているとき_cpuinfo()
に、Windows API に出くわしました。私は主に Linux 環境 (GCC) を扱っているので、CPUInfo にアクセスしたいと考えています。
私は次のことを試しました:
#include <iostream>
int main()
{
int a, b;
for (a = 0; a < 5; a++)
{
__asm ( "mov %1, %%eax; " // a into eax
"cpuid;"
"mov %%eax, %0;" // eax into b
:"=r"(b) // output
:"r"(a) // input
:"%eax","%ebx","%ecx","%edx" // clobbered register
);
std::cout << "The CPUID level " << a << " gives EAX= " << b << '\n';
}
return 0;
}
これはアセンブリを使用しますが、車輪を再発明したくありません。アセンブリなしで CPUInfo を実装する他の方法はありますか?