2,644
社区成员




char OEMString[13];
int iEAXValue,iEBXValue,iECXValue,iEDXValue;
_asm
{
mov eax,0
cpuid
mov DWORD PTR OEMString,ebx
mov DWORD PTR OEMString+4,edx
mov DWORD PTR OEMString+8,ecx
mov BYTE PTR OEMString+12,0
}
SetDlgItemText(IDC_STATIC1,OEMString); //CPU名称
_asm
{
mov eax,1
cpuid
mov iEAXValue,eax
mov iEBXValue,ebx
mov iECXValue,ecx
mov iEDXValue,edx
}
int iCPUFamily=(0xf00 & iEAXValue)>>8;
char Family[10]={0};
itoa(iCPUFamily,Family,10);
SetDlgItemText(IDC_STATIC2,Family); //CPU系列
_asm
{
mov eax,2
CPUID
}
char szCPUID[129]={NULL};
char szTmp[33]={NULL};
unsigned long s1 = 0,s2=0;
_asm
{
mov eax,01h
xor edx,edx
cpuid
mov s1,edx
mov s2,eax
}
sprintf(szTmp, "%08X%08X", s1, s2);
strcpy(szCPUID, szTmp);
_asm
{
mov eax,03h
xor ecx,ecx
xor edx,edx
cpuid
mov s1,edx
mov s2,ecx
}
sprintf(szTmp, "%08X%08X", s1, s2);
strcat(szCPUID, szTmp);
SetDlgItemText(IDC_STATIC3,szCPUID); //CPUID号