【发布时间】:2012-10-24 02:34:12
【问题描述】:
我正在尝试使用 C++ 中的 CPUID 访问信息。 到目前为止,我已经制作了这段代码,不能再去了。 我在这里和网上找到了一些有用的文章,但它们似乎对我没有帮助。
我应该只使用来自 x88 的指令和寄存器。 这是代码。
int b[5] = {0} ;
for (int a = 0; a < 5 ; a++)
{
__cpuid (b,a) ;
std::cout << "The code " << a << " gives " << b[0] << std::endl;
}
我无法更进一步,因为我无法理解如何按位从该数组中获取信息。我有这篇 wiki 和 msdn 文章解释了这个计划。 我的问题不是很好,但我将不胜感激这方面的任何帮助或指导。
【问题讨论】:
-
我的意思是 iAPx8088。如果我在学习时说错了,我很抱歉。
-
8088 没有 CPUID。作为第一代,它真的不需要一个......
-
8088/8086 没有 cpuid,直到很久以后才有。我已经很久没有查看 cpuid 代码了,但是他们使用自我修改代码来确定预取缓冲区深度,这就是您如何区分非常早期的 x86 处理器(8088 是 x86 系列的一部分,它是一个 8086 8 位外部总线)。