24小时热门版块排行榜    

查看: 607  |  回复: 3
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zsglly

木虫 (著名写手)

[交流] 怎样用程序取得CPU信息

很 多 软 件 可 以 判 断所 运 行 的 电 脑 类 型 而 自 动 做 不 同 的
处 理。 如PhotoShop 5 可 以 探 测CPU 是 否 有MMX 支 持 而 调 用 不
同 的 处 理 函数,《 金 山 词 霸》 发 现 有MMX 支 持 会 产 生 半 透
明 的翻 译 提 示, 很 多 软 件 可 以 区 分Intel,Cyrix,AMD 的CPU...

现 在, 且 让 我 细 细道 来 如 何 让 你 在 自 己 的 程 序 中 取  
得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 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

K7 是 什 么 标 志, 只 有 等 大 家拿 到K7 的 芯 再 说 了。

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

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

程 序 如 下: 是C++Builder 的 控 制台 程 序, 可 以 给 出 你 的" 心"
的 信 息。 如 果 把这 个 技 术 用 于DLL 中, 便 可 以 使VB 程 序  
也 知 道" 心" 的 信 息。

//--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;
}



To cncqnet:就这水平了,没法再具体了,见谅!

[ Last edited by 幻影无痕 on 2006-11-17 at 08:18 ]
回复此楼

» 猜你喜欢

做人要厚道啊!厚道啊!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cncqnet

银虫 (小有名气)

0.5

又是汇编,能具体点吗
3楼2005-12-30 13:54:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 08工学调剂 +10 用户573181 2026-03-20 15/750 2026-03-24 18:14 by dick_runner
[考研] 【考研调剂】化学专业 281分,一志愿四川大学,诚心求调剂 +14 吃吃吃才有意义 2026-03-19 15/750 2026-03-24 17:28 by dick_runner
[考研] 求调剂 +6 研研,接电话 2026-03-24 7/350 2026-03-24 17:01 by barlinike
[考研] 收08调剂生 +4 komorebi69 2026-03-18 4/200 2026-03-24 16:53 by 不知名小学生
[考研] 277分求调剂,跨调材料 +3 考研调剂lxh 2026-03-24 3/150 2026-03-24 13:52 by JourneyLucky
[考研] 一志愿河北工业大学0817化工278分求调剂 +7 jhybd 2026-03-23 12/600 2026-03-24 09:03 by jhybd
[考研] 336求调剂 +4 收到VS 2026-03-20 4/200 2026-03-23 19:02 by macy2011
[考研] 生物学一志愿985,分数349求调剂 +6 zxts12 2026-03-21 9/450 2026-03-23 18:37 by macy2011
[考研] 316求调剂 +7 梁茜雯 2026-03-19 7/350 2026-03-23 16:21 by lingjue
[考研] 一志愿070300浙大化学358分,求调剂! +4 酥酥鱼.. 2026-03-21 4/200 2026-03-23 08:12 by Iveryant
[考研] 306求调剂 +5 来好运来来来 2026-03-22 5/250 2026-03-22 16:17 by BruceLiu320
[考研] 寻找调剂 +4 倔强芒? 2026-03-21 4/200 2026-03-22 16:14 by 木托莫露露
[考研] 材料求调剂 +5 @taotao 2026-03-21 5/250 2026-03-21 20:55 by lbsjt
[考研] 考研调剂 +3 呼呼?~+123456 2026-03-21 3/150 2026-03-21 20:04 by 无际的草原
[考研] 297求调剂 +3 喜欢还是不甘心 2026-03-20 3/150 2026-03-21 18:33 by 学员8dgXkO
[考研] 求调剂 +3 白QF 2026-03-21 3/150 2026-03-21 13:12 by zhukairuo
[考研] 085601调剂 358分 +3 zzzzggh 2026-03-20 4/200 2026-03-21 10:21 by luoyongfeng
[考研] 085700资源与环境308求调剂 +12 墨墨漠 2026-03-18 13/650 2026-03-21 01:42 by JourneyLucky
[考研] 296求调剂 +6 www_q 2026-03-18 10/500 2026-03-20 23:56 by JourneyLucky
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
信息提示
请填处理意见