type
TCPUID = array [1 .. 4] of Longint;
FUNCTION GetCPUID1: 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 GetCPUIDStr: String;
var
CPUID: TCPUID;
begin
CPUID := GetCPUID1;
Result := IntToHex(CPUID[1], 8) + IntToHex(CPUID[4], 8);
end;