#include <stdio.h>
char *cpu_id(char *id)
{
//char s[30];
unsigned long s1,s2,s3,s4;
char sel;
asm volatile
( "movl $0x01 , %%eax ; \n\t"
"xorl %%edx , %%edx ;\n\t"
"cpuid ;\n\t"
"movl %%edx ,%0 ;\n\t"
"movl %%eax ,%1 ; \n\t"
:"=m"(s1),"=m"(s2)
);
//printf("%08X-%08X-",s1,s2);
asm volatile
("movl $0x03,%%eax ;\n\t"
"xorl %%ecx,%%ecx ;\n\t"
"xorl %%edx,%%edx ;\n\t"
"cpuid ;\n\t"
"movl %%edx,%0 ;\n\t"
"movl %%ecx,%1 ;\n\t"
:"=m"(s3),"=m"(s4)
);
// printf("%08X-%08X \n",s3,s4);
sprintf(id,"%08X-%08X-%08X-%08X",s1,s2,s3,s4);
printf("***%s***\n",id);
return id;
}
int main(int argc, char* argv[])
{
char id[30] = {0};
cpu_id(id);
printf("%s\n",id);
return 0;
}
linux下获取系统CPU的id
最新推荐文章于 2021-05-28 15:20:29 发布