In order to retrieve CPU brand, information in red square on above photo, please use following code:
string GetCPUBrand() { char pszCPUBrand[49]; memset(pszCPUBrand, ' ', 49); _asm { mov eax, 80000002h cpuid // getting information from EAX mov pszCPUBrand[0], al mov pszCPUBrand[1], ah ror eax, 16 mov pszCPUBrand[2], al mov pszCPUBrand[3], ah // getting information from EBX mov pszCPUBrand[4], bl mov pszCPUBrand[5], bh ror ebx, 16 mov pszCPUBrand[6], bl mov pszCPUBrand[7], bh // getting information from ECX mov pszCPUBrand[8], cl mov pszCPUBrand[9], ch ror ecx, 16 mov pszCPUBrand[10], cl mov pszCPUBrand[11], ch // getting information from EDX mov pszCPUBrand[12], dl mov pszCPUBrand[13], dh ror edx, 16 mov pszCPUBrand[14], dl mov pszCPUBrand[15], dh mov eax, 80000003h cpuid // getting information from EAX mov pszCPUBrand[16], al mov pszCPUBrand[17], ah ror eax, 16 mov pszCPUBrand[18], al mov pszCPUBrand[19], ah // getting information from EBX mov pszCPUBrand[20], bl mov pszCPUBrand[21], bh ror ebx, 16 mov pszCPUBrand[22], bl mov pszCPUBrand[23], bh // getting information from ECX mov pszCPUBrand[24], cl mov pszCPUBrand[25], ch ror ecx, 16 mov pszCPUBrand[26], cl mov pszCPUBrand[27], ch // getting information from EDX mov pszCPUBrand[28], dl mov pszCPUBrand[29], dh ror edx, 16 mov pszCPUBrand[30], dl mov pszCPUBrand[31], dh mov eax, 80000004h cpuid // getting information from EAX mov pszCPUBrand[32], al mov pszCPUBrand[33], ah ror eax, 16 mov pszCPUBrand[34], al mov pszCPUBrand[35], ah // getting information from EBX mov pszCPUBrand[36], bl mov pszCPUBrand[37], bh ror ebx, 16 mov pszCPUBrand[38], bl mov pszCPUBrand[39], bh // getting information from ECX mov pszCPUBrand[40], cl mov pszCPUBrand[41], ch ror ecx, 16 mov pszCPUBrand[42], cl mov pszCPUBrand[43], ch // getting information from EDX mov pszCPUBrand[44], dl mov pszCPUBrand[45], dh ror edx, 16 mov pszCPUBrand[46], dl mov pszCPUBrand[47], dh } pszCPUBrand[48] = '\0'; return string(pszCPUBrand); }
No comments:
Post a Comment