转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
研究心得-------CPU信息的获得,比较全面的。         ★★★★

研究心得-------CPU信息的获得,比较全面的。

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2307 更新时间:2009/4/23 18:38:05
最近到整理了一份CPU的信息,应该算是比较全面的吧。
几乎现在所有的X86 CPU都内置了CPUID指令以辨别真伪,一些CPU厂商例如AMD,VIA等还内置了更加丰富的扩展CPUID指令,用着更方便了。
下面我们利用Delphi来实现一个CPU检测的软件。
CPUID的调用方式如下:
 asm
 push eax
 push ebx
 push ecx
 push edx
 mov eax,X
//******************************************************
//cpuid指令,因为Delphi的汇编编译器没有内置该指令,
//所以用该指令的机器语言代码$0F,$A2来实现
//******************************************************
 db $0F,$A2
 pop edx
 pop ecx
 pop ebx
 pop eax
 end;
CPUID指令的参数就是EAX,mov eax,X这一句就是把X赋给EAX 。
返回的参数存储在EAX,EBX,ECX,EDX之中。
我们可以写一个函数:
type
 TCPUIDResult = record
   EAX: DWord;
   EBX: DWord;
   ECX: DWord;
   EDX: DWord;
 end;
……
function CPUID(EAX:DWord): TCPUIDResult;
asm
 push eax
 push ebx
 push ecx
 push edx
 mov eax,EAX
 //******************************************************
 //cpuid指令,因为Delphi的汇编编译器没有内置该指令,
 //所以用该指令的机器语言代码$0F,$A2来实现
 //******************************************************
 db $0F,$A2
 mov Result.EAX,EAX
 mov Result.EBX,EBX
 mov Result.ECX,ECX
 mov Result.EDX,EDX
 pop edx
 pop ecx
 pop ebx
 pop eax
end;

CPUID参数及返回值列表:
EAX= 0000_0000h
输入  EAX=0000_0000h  得到CPUID指令所支持的最大值和厂家的名称字符串
输出  EAX=xxxx_xxxxh  得到CPUID指令所支持的最大值 #1
 EBX-EDX-ECX  厂家的名称字符串 #2
   GenuineIntel  Intel 处理器
   UMC UMC UMC  UMC 处理器
   AuthenticAMD  AMD 处理器
   CyrixInstead  Cyrix 处理器
   NexGenDriven  NexGen 处理器
   CentaurHauls  Centaur 处理器
   RiseRiseRise  Rise Technology 处理器
   GenuineTMx86  Transmeta 处理器
   Geode by NSC  National Semiconductor 处理器
说明  描述
#1  pre-B0 step Intel P5 处理器返回 EAX=0000_05xxh.
#2  pre-B0 step Intel P5 处理器不能返回厂商字符串
EAX= 0000_0001h
输入  EAX=0000_0001h  得到处理器 type/family/model/stepping和 面貌标识
输出  EAX=xxxx_xxxxh  处理器 type/family/model/stepping
   extended family  extended family 是 bits 27..20.
     00h  Intel P4
     01h  Intel Itanium 2 (IA-64)
   extended model  extended model 是 bits 19..16.
   type  type是 bit 13 和 bit 12.
     11b  保留
     10b  第二块处理器
     01b  Overdrive 处理器
     00b  第一处理器
   family  family是bits 11..8.
     4  most 80486s
AMD 5x86
Cyrix 5x86
     5  Intel P5, P54C, P55C, P24T
NexGen Nx586
Cyrix M1
AMD K5, K6
Centaur C6, C2, C3
Rise mP6
Transmeta Crusoe TM3x00 and TM5x00
     6  Intel P6, P2, P3
AMD K7
Cyrix M2, VIA Cyrix III
     7  Intel Itanium (IA-64)
     F  如果是这个值的话就看extended family
   model  model 是 bits 7..4.
     Intel  F  如果是这个值的话就看 extended model
     Intel 80486  0  i80486DX-25/33
       1  i80486DX-50
       2  i80486SX
       3  i80486DX2
       4  i80486SL
       5  i80486SX2
       7  i80486DX2WB
       8  i80486DX4
       9  i80486DX4WB
     UMC 80486  1  U5D
       2  U5S
     AMD 80486  3  80486DX2
       7  80486DX2WB
       8  80486DX4
       9  80486DX4WB
       E  5x86
       F  5x86WB
     Cyrix 5x86  9  5x86
     Cyrix MediaGX  4  GX, GXm
     Intel P5-core  0  P5 A-step
       1  P5
       2  P54C
       3  P24T Overdrive
       4  P55C
       7  P54C
       8  P55C (0.25μm)
     NexGen Nx586  0  Nx586 or Nx586FPU (only later ones)
     Cyrix M1  2  6x86
     Cyrix M2  0  6x86MX
     VIA Cyrix III  5  Cyrix M2 core
       6  WinChip C5A core
       7  WinChip C5B core (if stepping = 0..7)
       7  WinChip C5C core (if stepping = 8..F)
       8  WinChip C5C-T core (if stepping = 0..7)
     AMD K5  0  SSA5 (PR75, PR90, PR100)
       1  5k86 (PR120, PR133)
       2  5k86 (PR166)
       3  5k86 (PR200)
     AMD K6  6  K6 (0.30 μm)
       7  K6 (0.25 μm)
       8  K6-2
       9  K6-III
       D  K6-2+ or K6-III+ (0.18 μm)
     Centaur  4  C6
       8  C2
       9  C3
     Rise  0  mP6 (0.25 μm)
       2  mP6 (0.18 μm)
     Transmeta  4  Crusoe TM3x00 and TM5x00
     Intel P6-core  0  P6 A-step
       1  P6
       3  P2 (0.28 μm)
       5  P2 (0.25 μm)
       6  P2 with on-die L2 cache
       7  P3 (0.25 μm)
       8  P3 (0.18 μm)
with 256 KB on-die L2 cache
       A  P3 (0.18 μm)
with 1 or 2 MB on-die L2 cache
       B  P3 (0.13 μm)
with 256 or 512 KB on-die L2 cache
     AMD K7  1  Athlon (0.25 μm)
       2  Athlon (0.18 μm)
       3  Duron (SF core)
       4  Athlon (TB core)
       6  Athlon (PM core)
       7  Duron (MG core)
       8  Athlon (TH core)
       A  Athlon (Barton core)
     Intel P4-core  0  P4 (0.18 μm)
       1  P4 (0.18 μm)
       2  P4 (0.13 μm)
       3  P4 (0.09 μm)
   stepping  stepping 在 bits 3..0.
     Stepping描述的是处理器的细节.
 EBX=aall_ccbbh  brand ID  brand ID是 7..0.
     00h  不支持
     01h  0.18 μm Intel Celeron
     02h  0.18 μm Intel Pentium III
     03h  0.18 μm Intel Pentium III Xeon
     03h  0.13 μm Intel Celeron
     04h  0.13 μm Intel Pentium III
     07h  0.13 μm Intel Celeron mobile
     06h  0.13 μm Intel Pentium III mobile
     0Ah  0.18 μm Intel Celeron 4
     08h  0.18 μm Intel Pentium 4
     09h  0.13 μm Intel Pentium 4
     0Eh  0.18 μm Intel Pentium 4 Xeon
     0Bh  0.18 μm Intel Pentium 4 Xeon MP
     0Bh  0.13 μm Intel Pentium 4 Xeon
     0Ch  0.13 μm Intel Pentium 4 Xeon MP
     08h  0.13 μm Intel Celeron 4 mobile
     0Eh  0.13 μm Intel Pentium 4 mobile (production)
     0Fh  0.13 μm Intel Pentium 4 mobile (samples)
   CLFLUSH  CLFLUSH (8-byte)在 bits 15..8.
   CPU count  逻辑处理器数量 bits 23..16.
   APIC ID  默认(固定的)APIC ID是bits 31..24.
 ECX=xxxx_xxxxh  feature flags  描述
   bits 31...11  保留
   bit 10 (CID)  context ID: L1数据缓存能被设置成适应或共享模式
   bit 9  保留
   bit 8 (TM2)  热量监控 2
   bit 7  保留
   bit 6  保留
   bit 5  保留
   bit 4 (DSCPL)  CPL-qualified Debug Store
   bit 3 (MON)  监控器
   bit 2  保留
   bit 1  保留
   bit 0 (SSE3)  SSE3, MXCSR, CR4.OSXMMEXCPT, #XF, 如果FPU=1也支持 FISTTP
 EDX=xxxx_xxxxh  面貌标志  说明
   bit 31 (PBE)  Pending Break Event, STPCLK, FERR#, MISC_ENABLE MSR
   bit 30 (IA-64)  IA-64
   bit 29 (TM)  THERM_INTERRUPT, THERM_STATUS, and MISC_ENABLE MSRsxAPIC thermal LVT entry
   bit 28 (HTT)  Hyper-Threading Technology
   bit 27 (SS)  selfsnoop
   bit 26 (SSE2)  SSE2, MXCSR, CR4.OSXMMEXCPT, #XF
   bit 25 (SSE)  SSE, MXCSR, CR4.OSXMMEXCPT, #XF
   bit 24 (FXSR)  FXSAVE/FXRSTOR, CR4.OSFXSR
   bit 23 (MMX)  MMX
   bit 22 (ACPI)  THERM_CONTROL MSR
   bit 21 (DTES)  Debug Trace and EMON Store MSRs
   bit 20  保留
   bit 19 (CLFL)

[1] [2] [3] [4]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台