如何使用 CPUID 指令正确获取 x86 CPU 特性?

How to use CPUID instruction to get x86 CPU features correctly?

我想写一个小程序来获取x86CPU的特征。参考 CPUID 文档后,我发现有 2 个部分:

(1) EAX=1:

......
As of January 2011, the standard Intel feature flags are as follows: 
......

(2) EAX=80000001h:

......
AMD feature flags are as follows:
......

所以这意味着如果CPU供应商是GenuineIntel,我应该使用EAX=1,而如果是AuthenticAMD,我应该使用EAX=80000001h来执行CPUID 指令。我的理解正确吗?

参考AMD CPUID and Intel CPUID文档后,我了解到EAX 1 CPUID指令的标志不同,因此需要区分它们。