以前一直以为每个CPU都有唯一的CPU ID,查了一些参考资料后才知道,对于Intel的cpu,pentium III以后就不再支持唯一的cpu标识了,只可查到有厂家、型号和支持的功能等信息。
下面是用cpuid指令获取这些信息的参考资料。
闲人的这篇博文一定要看:《在C++中使用cpuid指令获得CPU信息 》
原文链接:http://www.cnblogs.com/freeman/archive/2005/08/30/226128.html
他帮我们封装了一个c++类,用来调用cpuid,获取相关信息。对于获取到的信息的解读,可以参考天壮的博客《cpuid的用途》
和这个链接:http://siyobik.info/main/reference/instruction/CPUID
由于闲人写的类中用的汇编代码是Intel格式的,mingw只支持AT&T格式的代码,所以如果你需要用mingw编译的话还需要把其中的汇编代码改为AT&T格式,下面是改写后AT&T格式的汇编代码:
Intel格式:
AT&T格式:
关于mingw中嵌入汇编代码的语法可参考:http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html