如何通过cpuid指令识别c/assembler中的cpu品牌名称
How to recognize cpu brand name in c/assembler by cpuid instruction
我不知道这个程序应该如何工作,我找到了一些代码,但我不明白它们,如果这里有人这么好并且有这样的程序,你能给我解释一下吗?
#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;
}
cpuid
指令根据 eax
寄存器的内容告诉您有关 CPU 的各种信息。当 eax
包含零时,寄存器 ebx
、edx
和 ecx
包含描述处理器供应商的字符串。您的代码从寄存器中提取字符串并将其打印出来。
阅读 Wikipedia 了解有关 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
}
name[12]=0;
printf("Procesor: %s\n", name);
getchar();
return 0;
}
cpuid
指令根据 eax
寄存器的内容告诉您有关 CPU 的各种信息。当 eax
包含零时,寄存器 ebx
、edx
和 ecx
包含描述处理器供应商的字符串。您的代码从寄存器中提取字符串并将其打印出来。
阅读 Wikipedia 了解有关 cpuid
的更多详细信息。