怎样用程序取得CPU 信息.docx_第1页
怎样用程序取得CPU 信息.docx_第2页
怎样用程序取得CPU 信息.docx_第3页
怎样用程序取得CPU 信息.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

怎 样 用 程 序 取 得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 GenuEDX:49656E69H ineIECX:6C65746EH ntelEBX,EDX,ECX 将 连 成GenuineIntel, 真 正 的Intel。Cyrix 的CPU 将 返 回:EBX:43797269HEDX:78496E73HECX:74656164HCyrixInstead,Cyrix 来 代 替。AMD 的CPU 将 返 回:EBX:41757468HEDX:656E7469HECX:63414D44HAuthenticAMD, 可 信 的AMD。- 在Windows98 中, 用 右 键 单 击 我 的 电 脑, 选 择 属 性- 常 规 在 计 算 机 描 述 处 就 可 看 见CPU OEM 字 符 串。 - (2)CPU 到 底 是 几86, 是 否 支 持MMX - 先 让EAX=1, 再 调 用CPUID - EAX 的 8 到11 位 就 表 明 是 几86 3 - 3864 - i4865 - Pentium6 - Pentium Pro Pentium II2 - Dual ProcessorsEDX 的 第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 argsusedint main(int argc, char *argv)char OEMString13;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;elsecout None MMX Support. 8;cout CPU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论