Get CPU Brand

王朝delphi·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

Get CPU Brand

Recent Intel and AMD processors have an extend CPUID function call, that returns the name of the processor. In earlier cpu models you had to use the version and feature information function of CPUID to look up names in a string list of your own.

The function GetBrandString shows how to access the brand string, provided the CPUID instuction is available.

Some AMD (K5 Model 1/2/3,K6 Model 6/7, K6 -2 Model 8, K6-III Model 9, all Athlon and Duron) and Intel Pentium IV support a Processor Name String that is a 0 byte terminated string that can be a up to 47 characters long (terminating 0 byte excluded) terminating.

function GetBrandString : string;

function CPUIDAvail : boolean; assembler;

{Thests wheter the CPUID instruction is available}

asm

pushfd // get flags into ax

pop eax // save a copy on the stack

mov edx,eax

xor eax, 0200000h // flip bit 21

push eax // load new value into flags

popfd // get them back

pushfd

pop eax

xor eax,edx

and eax, 0200000h // clear all but bit 21

shr eax, 21

end;

const

CPUID=$a20f;

var

s:array[0..48] of char;

begin

fillchar(s,sizeof(s),0);

if CPUIDAvail then begin

asm

//save regs

push ebx

push ecx

push edx

//check if necessary extended CPUID calls are

//supported, if not return null string

mov eax,080000000h

dw CPUID

cmp eax,080000004h

jb @@endbrandstr

//get first name part

mov eax,080000002h

dw CPUID

mov longword(s[0]),eax

mov longword(s[4]),ebx

mov longword(s[8]),ecx

mov longword(s[12]),edx

//get second name part

mov eax,080000003h

dw CPUID

mov longword(s[16]),eax

mov longword(s[20]),ebx

mov longword(s[24]),ecx

mov longword(s[28]),edx

//get third name part

mov eax,080000004h

dw CPUID

mov longword(s[32]),eax

mov longword(s[36]),ebx

mov longword(s[40]),ecx

mov longword(s[44]),edx

@@endbrandstr:

//restore regs

pop edx

pop ecx

pop ebx

end;

end;

result:=StrPas(s);

end;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航