就是用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:

  ...

}