G
gentlesoft
Unregistered / Unconfirmed
GUEST, unregistred user!
下面的 GetCPUID 兼容性如何?
type
TCPUID = array[1..4] of Longint;
function GetCPUID : TCPUID;
assembler;
register;
//得到CPU序列号
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;
请各位测试一下,是不是唯一值。
测试方法:
新建一个项目,放置一个 TEdit 和一个 TButton,在 Button.OnClick 中拷贝如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
CPUID: TCPUID;
begin
CPUID := GetCPUID;
Edit1.Text := IntToStr(CPUID[1]) +
IntToStr(CPUID[2]) +
IntToStr(CPUID[3]) +
IntToStr(CPUID[4]);
end;
多点击几次 Button,看看 Edit1 中的值是否有变化,如果没有,则说明工作正常。
如果有变化,则说明该函数不正常。
我已经测试了以下 CPU,结果都是正确的。
INTEL C4 1.7G
INTEL Celeron 500MHz
INTEL Celeron 800MHz
如果您愿意测试,请把测试结果贴在下面:
CPU 型号:
测试结果:正常/不正常
type
TCPUID = array[1..4] of Longint;
function GetCPUID : TCPUID;
assembler;
register;
//得到CPU序列号
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;
请各位测试一下,是不是唯一值。
测试方法:
新建一个项目,放置一个 TEdit 和一个 TButton,在 Button.OnClick 中拷贝如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
CPUID: TCPUID;
begin
CPUID := GetCPUID;
Edit1.Text := IntToStr(CPUID[1]) +
IntToStr(CPUID[2]) +
IntToStr(CPUID[3]) +
IntToStr(CPUID[4]);
end;
多点击几次 Button,看看 Edit1 中的值是否有变化,如果没有,则说明工作正常。
如果有变化,则说明该函数不正常。
我已经测试了以下 CPU,结果都是正确的。
INTEL C4 1.7G
INTEL Celeron 500MHz
INTEL Celeron 800MHz
如果您愿意测试,请把测试结果贴在下面:
CPU 型号:
测试结果:正常/不正常