就是用CPUID指令。这是Pentinum处理器加入的指令,但VC居然不支持它,搞不懂微软在搞什么飞机。不过没关系,我们自己来。
#define cpuid __asm _emit 0x0F __asm _emit 0xA2
// CPUID的指令代码就是0x0FA2
__asm{
mov eax, 1;
cpuid; // EAX=1时,CPUID指令返回EAX=CPU版本信息,EDX=CPU支持的特性
test edx, 0x800000
jz _NO_SUPPORT_MMX;
...
_NO_SUPPORT_MMX:
...
}