如何用C语言编写探测cpu的程序

关于IT系统管理的如何写一个C语言的程序来探测CPU和内存的使用情况?... 关于IT系统管理的
如何写一个C语言的程序来探测CPU和内存的使用情况?
展开
 我来答
百度网友0d0bef39a
2007-10-25 · TA获得超过356个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:165万
展开全部
参考下面的文章:

利用利用CPUID 汇编指令(机器码:0FH A2H, 如果你的编译器不支持CPUID 指令,只有emit 机器码了), 该指令可以被如下CPU识别:

Intel 486 以上的CPU,

Cyrix M1 以上的CPU,

AMD Am486 以上的CPU

(1) 取CPU OEM 字符串, 判断CPU 厂商

先让EAX=0, 再调用CPUID

Inel的CPU将返回:

EBX:756E6547H 'Genu'
EDX:49656E69H 'ineI'
ECX:6C65746EH 'ntel'
EBX,EDX,ECX 将连成"GenuineIntel", 真正的Intel。

Cyrix 的CPU 将返回:

EBX:43797269H
EDX:78496E73H
ECX:74656164H
"CyrixInstead","Cyrix 来代替"。

AMD 的CPU 将返回:

EBX:41757468H
EDX:656E7469H
ECX:63414D44H
"AuthenticAMD", 可信的AMD。

在Windows98中,用右键单击"我的电脑",选择" 属性- 常规"在计算机描述 处就可看见CPU OEM 字符串。

(2)CPU 到底是几86, 是否支持MMX

先让EAX=1,再调用CPUID

EAX的8到11位就表明是几86

3 - 386
4 - i486
5 - Pentium
6 - Pentium Pro Pentium II
2 - Dual Processors

EDX 的第0位:有无FPU

EDX的第23位:CPU是否支持IA MMX,很重要啊 !如果你想用那57条新增的指 令,先检查这一位吧,否则就等着看Windows 的"该程序执行了非法指令,将被关 闭" 吧。

(3) 专门检测是否P6架构

先让EAX=1,再调用CPUID

如果AL=1,就是Pentium Pro 或Pentium II

(4) 专门检测AMD的CPU信息

先让EAX=80000001H,再调用CPUID

如果EAX=51H, 是AMD K5

如 果EAX=66H, 是K6

EDX第0 位: 是否有FPU( 多余的 !谁用过没FPU的K5,K6?)

EDX 第23 位,CPU是否支持MMX,

程序如下:

//------CPUID Instruction Demo Program------------
#include
#include
#pragma hdrstop
//------------------------------------------------
#pragma inline
#pragma argsused
int main(int argc, char **argv)
{
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
}
cout< < "This CPU 's OEM String is:"< < OEMString< < endl;
_asm {
mov eax,1
cpuid
mov iEAXValue,eax
mov iEBXValue,ebx
mov iECXValue,ecx
mov iEDXValue,edx
}
if(iEDXValue&0x800000)
cout < < "This is MMX CPU"< < endl;
else
cout < < "None MMX Support."< < endl;
int iCPUFamily=(0xf00 & iEAXValue) > >8;
cout < < "CPU Family is:"< < iCPUFamily< < endl;
_asm{
mov eax,2
CPUID
}
if(_AL==1)
cout < < "Pentium Pro or Pentium II Found";
getch();
return 0;
}

最后,最好学会自己去搜索你需要的信息,
我上面的答案也是搜索来的。
关键字“C语言 CPU 信息”
lee富荣
2007-10-28 · TA获得超过260个赞
知道答主
回答量:134
采纳率:0%
帮助的人:173万
展开全部
看看操作系统的api文档,会不会有这方面的函数调用接口?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式