通过使用CPUID操作码,软件可以确定处理器的类型和特性支持(例如
MMX/
SSE)。CPUID操作码为0Fh、A2h(双字节形式,A20Fh为单字(word))形式,值位于EAX寄存器中,某些情况下ECX寄存器用于指定要返回的信息。
在CPUID指令普遍可用前,程序员需要编写深奥的
机器语言利用CPU行为的微小差异来确定处理器的情况和型号。
在x86系列之外,开发人员大多仍然需要使用深奥的过程来确定CPU设计存在的差异。虽然CPUID指令针对x86架构,但其他架构(例如ARM)通常提供可供读取的片上寄存器来获取与此指令提供的相同种类的信息。
在
汇编语言中,CPUID指令不使用参数,因为CPUID隐式使用EAX寄存器来确定返回信息的主类别。在英特尔最新的术语中,这被称为CPUID leaf。CPUID的调用应该以EAX = 0开始,这将在EAX寄存器中返回CPU支持的最高EAX调用参数(leaf)。
一些非x86的CPU架构也提供了有关处理器能力的某种形式的结构化信息,通常作为一组特殊
寄存器: