type TCPUID=array[1..4] of Longint;
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;
调用
procedure TForm3.btn1Click(Sender: TObject);
var cpuid:TCPUID; i:integer;
begin
cpuid:=GetCPUID;
for i:=1 to 4 do ssss:=ssss+IntToHex(CPUID[i],4);
ShowMessage(ssss);
end;
本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。