CPUID指令是intel IA32架构下获得CPU信息的汇编指令,可以得到CPU类型,型号,制造商信息,商标信息,序列号,缓存等一系列CPU相关的东西。
作用就是根据 eax 寄存器的值来测试 cpu的相关信息.之后按照 eax ebx edx ecx的顺序存在在4个寄存器.
eax=0 cpuid就会按照ebx,edx,ecx顺序返回cpu的生产厂商,比如intel或者amd
eax=1 会在4个通用寄存器返回cpu的型号,名称,工艺等信息
eax=2 会在4个通用寄存器返回,cpu的缓存数量
eax=3 返回cpu的序列号
eax=8000_0001h的时候,除了可以返回=1时候一些数值之外,还能返回cpu兼容的指令.
用利用CPUID 汇编指令(机器码:0FH A2H, 如果你的编译器不支持CPUID 指令,只有emit 机器码了), 该指令可以被如下CPU识别:
Intel 486 以上的CPU,
Cyrix M1 以上的CPU,
AMD Am486 以上的CPU
(1) 取CPU OEM 字符串, 判断CPU 厂商
先让EAX=0, 再调用CPUID
Inel的CPU将返回:
EBX:756E6547H 'Genu'
EDX:49656E69H 'ineI'
ECX:6C65746EH 'ntel'
EBX,EDX,ECX 将连成"GenuineIntel", 真正的Intel。
Cyrix 的CPU 将返回:
EBX:43797269H
EDX:78496E73H
ECX