如何用cpuid指令识别c/assembler中的cpu品牌

如何用cpuid指令识别c/assembler中的cpu品牌,c,assembly,cpuid,C,Assembly,Cpuid,我不知道这个程序应该如何工作,我发现了一些代码,但我不理解它们,如果这里有人很善良,有这样的程序,你能给我解释一下吗 #include <stdio.h> #include <string.h> int main() { char name[13]; __asm { XOR EAX,EAX CPUID MOV dword ptr [name], EBX MOV dword ptr [name+4], EDX MOV dword ptr [name+8], ECX }

我不知道这个程序应该如何工作,我发现了一些代码,但我不理解它们,如果这里有人很善良,有这样的程序,你能给我解释一下吗

#include <stdio.h>

#include <string.h>
int main()
{
char name[13];
 __asm
{
XOR EAX,EAX
CPUID
MOV dword ptr [name], EBX
MOV dword ptr [name+4], EDX
MOV dword ptr [name+8], ECX
 }
name[12]=0;
printf("Procesor: %s\n", name);
getchar();
return 0;
}
#包括
#包括
int main()
{
字符名[13];
__asm
{
异或EAX,EAX
CPUID
MOV dword ptr[名称],EBX
MOV dword ptr[名称+4],EDX
MOV dword ptr[名称+8],ECX
}
名称[12]=0;
printf(“进程:%s\n”,名称);
getchar();
返回0;
}

根据
eax
寄存器的内容,
cpuid
指令告诉您有关CPU的各种信息。当
eax
包含零时,寄存器
ebx
edx
ecx
包含描述处理器供应商的字符串。您拥有的代码从寄存器中提取字符串并将其打印出来

有关
cpuid
的详细信息,请阅读