用程序取得CPU信息

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
---- 很 多 软 件 可 以 判 断 所 运 行 的 电 脑 类 型 而 自 动 做 不同 的 处 理。 如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

EDX 第0 位: 是 否 有FPU

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

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

//------CPUID Instruction Demo Program------------
#include < conio.h >
#include < iostream.h >
#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;

}
VB程序 获取MAC ,IP ,hd ,CPU,内存,电脑名称等信息  Private Sub Form_Load()Dim Cpu, Mer, Disk, Mac, Ip, DiskSerial, PCNamestrComputer = "."Cpu = ""Mer = ""Disk = ""Mac = ""Ip = ""DiskSerial = ""PCName = ""密码初始化标签TePs.Text = ""获得CPU信息Set objWMIServ 阅读详情

相关推荐

C语言编写获取Linux本地目录及本机信息的小程序获取系统内存、cpu、硬盘等信息实例

展示目录的小程序 展示指定目录的小程序: #include <unistd.h> #include <stdio.h> #include <dirent.h> #include <string.h> #include <sys/stat.h> #include <stdlib.h> void printdir(char *dir,int depth){ DIR *dp; struct dirent *entry; st...

独旅天涯 692

怎样用程序取得CPU信息

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

燕青专栏 1210

Linux下统计多线程应用程序CPU 核心绑定信息

对于高性能应用程序尤其是计算资源密集型应用通常通过cpu 核绑定(即CPU 亲和性affinity )避免操作系统动态分配核心,来提升CPU利用率,提升应用程序总体性能。本文中介绍一种统计当前应用程序中各线程绑定CPU核的基本信息的方法。

十年通信老兵的技术修炼之路——从3G到5G,从地面基站到卫星通信。 782

【Linux】程序获取和设置cpu和mem相关信息

linux下获取CPU信息,内存信息

qq_37280428的博客 1612

如何从C程序获取网卡 CPU等硬件信息

在C程序获取硬件信息通常需要调用系统API或读取特定系统文件。涉及/proc、/sys等Linux特有文件系统接口。使用ioctl等Linux特有系统调用。查询PCI设备完整信息需要root权限。依赖Linux特有的工具链。PowerShell支持。

Made In SQL 1603

程序取得CPU信息 (转)

程序取得CPU信息 (转)[@more@]---- 很 多 软 件 可 以 判 断 所 运 行 的 电 脑 类 型 而 自 动 做 不同 的 处 理。 如PhotoShop 5 可 以 探 测cpu 是 否 有MMX 支 持 ...

cuiji1279的博客 120

程序读写CPU信息

程序读写CPU的相关信息

lenkco的专栏 558

显示CPU信息程序

//程序可以直接编译运行,是我在MSDN的例子基础上加了超线程判断的函数。">#include #include #include #include typedef BOOL (WINAPI *LPFN_GLPI)( PSYSTEM_LOGICAL_PROCESSOR_INFORMATION, PDWORD); BOOL hyperThr

行者无疆的专栏 1050

为golang程序使用pprof远程查看httpserver运行堆栈,cpu耗时等信息

pprof是个神马玩意儿? pprof - manual page for pprof (part of gperftools) 是gperftools工具的一部分 gperftools又是啥? These tools are for use by developers so that they can create more robust applications. Especially

chenbaoke的专栏 4820

怎样用程序取得CPU信息 (转)

怎样用程序取得CPU信息 (转)[@more@]怎样用程序取得cpu信息 很 多 软 件 可 以 判 断所 运 行 的 电 脑 类 型 而 自 动 做 不 同 的 处 理。 如PhotoShop 5 可 以 探 ...

csd3176的博客 113

CPUID实用程序:全面检测CPU信息的工具

CPUID是一个在x86架构的处理器中使用的指令,它的全称为“CPU Identification”,用于获取处理器的详细信息,包括但不限于品牌、型号、核心数、时钟速度、支持的技术特性等。自Intel首次引入以来,这一指令已成为程序员和硬件爱好者们获取CPU信息不可或缺的工具。

weixin_31776191的博客 970

macOS上彻底卸载conda:完整清理环境变量与残留配置指南

命令行环境管理工具依赖shell配置文件来注入环境变量,conda通过conda init在zsh或bash中写入初始化代码,以实现终端内即时可用的效果。这种机制带来了便利,但卸载时若只删除安装目录,残留的配置会导致终端报错甚至影响重装。掌握环境变量的配置原理,理解PATH加载逻辑,是彻底清理工具链的基础。对于开发者在迁移环境、清理磁盘或重装包管理器时,干净卸载能避免连锁故障。本文以macOS平台为例,系统讲解如何识别conda在shell配置、用户目录及Library中的残留痕迹,并提供适用于Anacon

cuiji1279的博客 371

程序CPU占用率飙升,如何定位线程的堆栈信息?「超详细,值得收藏」看不懂还有配套视频

相关历史文章(阅读本文前,您可能需要先看下之前的系列????) 国内最全的SpringBoot系列之三 2020上半年发文汇总「值得收藏」 GraphQL的探索之路–SpringBoot集成GraphQL小栗子篇二-第315篇 GraphQL的探索之路–SpringBoot集成GraphQL之Query篇三-第316篇 GraphQL的探索之路–SpringBoot集成GraphQL之Mutation篇四-第317篇 RocketMQ安装Linux/Mac/Window - ...

悟纤学院 1万+

Linux 服务器 CPU 详细信息查看、物理 CPU 以及逻辑 CPU | 1024程序员节快乐~

什么是 CPU CPU: (Central Processing Unit)也称为中央处理器, 主要通过内部总线, 建立起芯片内各部件之间的信息传输通路 如何查看 CPU 详细信息 我们平常在操作 Linux 服务器时, 如何能够知道服务器的 CPU 的详细信息呢 [xxx@xxx ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 16: CPU 核心数 Intel®: 服务器 CPU 品牌英特尔 Xeon®: 英特尔微处理器(至强..

Long-Tai 1134
上一篇: 在C++Builder 5中使用ADO数据库编程
下一篇: 软件测试问题登记表
luhongjun
博客等级 码龄26年 12粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值