获取CPUID信息:

需要在VC下编译

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef unsigned int UINT;
typedef char BYTE;
void GetCpuID()
{
// 定义一些变量,用于存储 CPU 的 ID信息

BYTE szCpu[16] = { 0 };
UINT uCpuID = 0U;

// 以写追加的方式打开用来保存结果的文件
FILE *pf = fopen("./cpu_id_info.txt", "a+");

// 对文件指针的有效性进行判断

assert(NULL != pf);
if (NULL == pf)
return;

// 调用汇编代码,获取 CPU ID 信息

__asm{
mov eax, 0
cpuid
mov dword ptr szCpu[0], ebx
mov dword ptr szCpu[4], edx
mov dword ptr szCpu[8], ecx
mov eax, 1
cpuid
mov uCpuID, edx
}

// 把结果输出到文件中
fprintf(pf, "cpu id is %u, info is %s", uCpuID, szCpu);

// 关闭文件指针在内存中的映射
fclose(pf);
}
int main()
{
GetCpuID();
return 0;
}