在32位和64位计算机上,CPUID有何区别?

时间:2018-12-20 09:42:23

标签: 32bit-64bit cpuid

我的问题是CPUID在32位和64位计算机上的工作有什么区别?调用CPUID或返回结果的方式可能有所不同,例如,我们应该检查RAX和其他寄存器,也许存储在其中的信息是不同的

1 个答案:

答案 0 :(得分:1)

根据Intel SDM

  

该指令对64b和非64b的操作均相同

但即使其行为相同,也请记住,CPUID指令会在所有模式下清除RAX / RBX / RCX / RDX寄存器的高32位,因此,如果您检查上述寄存器中的最高32位您将读取0x0。

由于CPUID正在查看EAX(在某些情况下为ECX),因此下面的两个代码将返回相同的数据:

mov RAX, 0xFFFF_FFFF_0000_000
cpuid

mov RAX, 0x0
cpuid

相关问题