x86asm汇编读取cpu信息(cpuid指令)
#include <stdio.h> int main(void) { unsigned long uId = 0x80000002; char cpu[49]={0}; char* p = cpu; int i; for(i=0; i<3; i++){ __asm{ pushad mov eax,uId cpuid; mov esi,p mov [esi+0],eax mov [esi+4],ebx mov [esi+8],ecx mov [esi+12],edx popad } p += 4*4; uId++; } printf("%s\n",cpu); return 0; }
在我的电脑(老爷机)上运行的效果:
注:cpuid参数有很多, 这里只取了品牌信息.