【发布时间】:2015-10-02 04:04:51
【问题描述】:
我想使用cpuid 指令查询CPU 特性。我对所有其他 CPUID 级别感兴趣,包括 0x80000000 和 0xc0000000 (Centaur)。问题是我没有明确的方法来确定是否支持特定级别。
特别是,我很担心来自Intel(R) 64 and IA-32 Architectures Software Developer's Manual 的这一特殊位:
返回两种类型的信息:基本功能信息和扩展功能信息。如果为 CPUID.EAX 输入了一个值 高于该处理器的基本或扩展功能的最大输入值,则该处理器的数据 返回最高的基本信息叶。
这意味着如果我用EAX = 0x80000000 或EAX = 0xc0000000 查询cpuid,我可以在EAX 中获得最大CPUID 级别,或者输出一些随机的基本级别叶子。
是否有可靠且相对简单的方法来确定是否支持特定级别?
【问题讨论】: