我应该同时查找Intel和AMD x86指令集参考以了解CPUID位的含义吗?

我应该同时查找Intel和AMD x86指令集参考以了解CPUID位的含义吗?,x86,cpuid,X86,Cpuid,我应该同时查找Intel和AMD x86指令集参考以了解CPUID位的含义吗 这使我怀疑(来自): ABM仅作为AMD的单个指令集实现;所有AMD 处理器支持两条指令,或者两者都不支持。英特尔考虑 POPCNT作为SSE4.2的一部分,LZCNT作为BMI1的一部分。POPCNT有一个 单独的CPUID标志;然而,英特尔使用AMD的ABM标志来表示 LZCNT支持(自LZCNT完成ABM后) 问题只是关于CPUID的意义 我认为指令本身要么实现要么不实现,但操作码没有明确的含义,所以对于指令本身

我应该同时查找Intel和AMD x86指令集参考以了解CPUID位的含义吗

这使我怀疑(来自):

ABM仅作为AMD的单个指令集实现;所有AMD 处理器支持两条指令,或者两者都不支持。英特尔考虑 POPCNT作为SSE4.2的一部分,LZCNT作为BMI1的一部分。POPCNT有一个 单独的CPUID标志;然而,英特尔使用AMD的ABM标志来表示 LZCNT支持(自LZCNT完成ABM后)

问题只是关于CPUID的意义


我认为指令本身要么实现要么不实现,但操作码没有明确的含义,所以对于指令本身,我想一个参考就足够了。关于性能期望,确保确切的CPU系列很重要,而不仅仅是供应商。

ABM只是两条指令,
popcnt
lzcnt
。所有设置该位的英特尔CPU都支持这两种功能。这就是他们写作的原因“(因为LZCNT完成了ABM)”

您可以检查这一点,而不必关心供应商

我认为从理论上讲,供应商不想承诺其他所有供应商都会以相同的方式使用功能位,但实际上,ISA扩展的所有功能位都是通用的,并且无论供应商如何,其含义都是相同的。(我想。)