Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

路漫漫,长修远,我们不能没有钱

[导入]在偶机器上找到一个读cpu串号的代码,delphi的,记录一下(申明是人家的代码)

unit CPU;

interface

uses
  SysUtils;

type
  TCPUID = array[1..4] of Longint;
  TVendor = array[0..11] of char;

function GetCPUID: TCPUID; assembler; register;
function GetCPUVendor: TVendor; assembler; register;
function GetCPUInfo: string;

implementation


function GetCPUID: TCPUID; assembler; register;
asm
 PUSH    EBX         {Save affected register}
 PUSH    EDI
 MOV     EDI,EAX      {@Resukt}
 MOV     EAX,1
 DW      $A20F        {CPUID Command}
 STOSD                {CPUID[1]}
 MOV     EAX,EBX
 STOSD                {CPUID[2]}
 MOV     EAX,ECX
 STOSD                {CPUID[3]}
 MOV     EAX,EDX
 STOSD                {CPUID[4]}
 POP     EDI          {Restore registers}
 POP     EBX
end;

function GetCPUVendor: TVendor; assembler; register;
asm
 PUSH    EBX          {Save affected register}
 PUSH    EDI
 MOV     EDI,EAX      {@Result (TVendor)}
 MOV     EAX,0
 DW      $A20F        {CPUID Command}
 MOV     EAX,EBX
 XCHG    EBX,ECX      {save ECX result}
 MOV     ECX,4
@1:
 STOSB
 SHR     EAX,8
 LOOP    @1
 MOV     EAX,EDX
 MOV     ECX,4
@2:
 STOSB
 SHR     EAX,8
 LOOP    @2
 MOV     EAX,EBX
 MOV     ECX,4
@3:
 STOSB
 SHR     EAX,8
 LOOP    @3
 POP     EDI          {Restore registers}
 POP     EBX
end;

function GetCPUInfo: string;
var
  CPUID: TCPUID;
  I: Integer;
  S: TVendor;
begin
  for I := Low(CPUID) to High(CPUID) do
    CPUID[I] := -1;

  CPUID := GetCPUID;

  S := GetCPUVendor;

  Result := S + IntToHex(CPUID[1], 8) + IntToHex(CPUID[2], 8)
    + IntToHex(CPUID[3], 8)
    + IntToHex(CPUID[4], 8);
end;


end.


以前中专d时候看ibm 8086/8088汇编有自己写过这些代码d,但是现在过了这么多年,退化到看不懂这些了

posted on 2006-01-12 09:56 Khan 阅读(673) 评论(0)  编辑 收藏 引用 所属分类: Delphi


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2006年1月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

公告

短信大全 for android 1.5
豌豆荚一键安装

现在时刻

IM在线情况:
点击这里给我发消息

常用链接

留言簿(33)

随笔分类(218)

随笔档案(163)

相册

技术

友情链接

最新随笔

搜索

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜