关于超想
本站导航
邮件列表
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> API相关 ->详细
相关内容  
 
 
在Delphi程序中应用IE浏览器控件
 
【新品推荐】

  详细内容
 

嵌入汇编检测CPU的型号
作者: 评价: 上站日期: 2002-05-22
内容说明:
来源:

Unit CPUid; 

Interface 

Type 

TCpuType = (cpu8086, cpu286, cpu386, cpu486, cpuPentium); 

Function CpuType : TCpuType; 
Function CpuTypeString : String; 

Implementation 

Uses 
SysUtils; 

Function CpuType : TCpuType; ASSEMBLER; 
Asm 
// 8086 CPU 检测
push ds 
pushf 
pop bx 
mov ax, 0fffh 
and ax, bx 
push ax 
popf 
pushf 
pop ax 
and ax, 0f000h 
cmp ax, 0f000h 
mov ax, cpu8086 
je @@End_CpuType 

// 80286 CPU检测 

or bx, 0f000h 
push bx 
popf 
pushf 
pop ax 
and ax, 0f000h 
mov ax, cpu286 
jz @@End_CpuType 

// 386 CPU 检测

db 66h 
pushf 
db 66h 
pop ax 
db 66h 
mov cx, ax 
db 66h 
xor ax, 0h 
dw 0004h 
db 66h 
push ax 
db 66h 
popf 
db 66h 
pushf 
db 66h 
pop ax 
db 66h 
xor ax, cx 
mov ax, cpu386 
je @@End_CpuType 

// 486 CPU 检测

db 66h 
pushf 
db 66h 
pop ax 
db 66h 
mov cx, ax 
db 66h 
xor ax, 0h 
dw 0020h 
db 66h 
push ax 
db 66h 
popf 
db 66h 
pushf 
db 66h 
pop ax 
db 66h 
xor ax, cx 
mov ax, cpu486 
je @@End_CpuType 

// Pentium CPU 检测

db 66h 
mov ax, 1 
dw 0 
db 66h 
db 0Fh 
db 0a2h 
db 66h 
and ax, 0F00H 
dw 0 
db 66h 
shr ax, 8 
sub ax, 1 

@@End_CpuType: 

pop ds 

End; 

Function CpuTypeString : String; 

Var 

Kind : TCpuType; 

Begin 

Kind := CpuType; 

Case Kind Of 

cpu8086 : Result := '8086'; 
cpu286 : Result := '286'; 
cpu386 : Result := '386'; 
cpu486 : Result := '486'; 
cpuPentium : Result := 'Pentium'; 

Else Result := Format ('P%d', [Ord (kind)]); 

End; 

End; 

End.

 
你所在的位置 -> 主页 -> 超想软件 -> 编程资料 -> delphi -> 开发技巧 -> API相关 ->详细
  首页 | 本站产品 | Delphi资料 | 免费资源 | 程序人生 | 软件工程 | 网站设计 | 推荐网站
声明:本站内容除注明原创以外均从网上摘抄,如有侵权请指明。
  如果您对我们的网站有什么意见或者建议,请与我们联系
powered by 建站易上手- V2.0