type
TCPUID=ARRAY[1..4] OF LONGINT
FUNCTION GetCPUID:TCPUID;
ASSEMBLER;
REGISTER;
ASM
PUSH EBX
PUSH EDI
MOV EDI,EAX
MOV EAX,1
DW $A20F
STOSD
MOV EAX,EBX
STOSD
MOV EAX,ECX
STOSD
MOV EAX,EDX
STOSD
POP EDI
POP EBX
END;
Function GetCPUInfo: string;
var
CPUID: TCPUID;
I: Integer;
begin
for I := Low(CPUID) to High(CPUID) do
CPUID := -1;
CPUID := GetCPUID;
Result := IntToHex(CPUID[1], 8) + IntToHex(CPUID[2], 8)
+ IntToHex(CPUID[3], 8)
+ IntToHex(CPUID[4], 8);
end;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
type
TCPUID=ARRAY[1..4] OF LONGINT;
FUNCTION GetCPUID:TCPUID;
ASSEMBLER;
REGISTER;
ASM
PUSH EBX
PUSH EDI
MOV EDI,EAX
MOV EAX,1
DW $A20F
STOSD
MOV EAX,EBX
STOSD
MOV EAX,ECX
STOSD
MOV EAX,EDX
STOSD
POP EDI
POP EBX
END;
Function GetCPUInfo: string;
var
CPUID: TCPUID;
I: Integer;
begin
for I := Low(CPUID) to High(CPUID) do
CPUID[i] := -1;
CPUID := GetCPUID;
Result := IntToHex(CPUID[1], 8) + IntToHex(CPUID[2], 8)
+ IntToHex(CPUID[3], 8)
+ IntToHex(CPUID[4], 8);
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := GetCPUInfo;
end;