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

来源:百度知道 编辑:UC知道 时间:2024/06/16 19:35:00
关于IT系统管理的
如何写一个C语言的程序来探测CPU和内存的使用情况?

参考下面的文章:

利用利用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 P