在论坛上找到以下代码:FUNCTION TForm1.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 TForm1.GetCPUIDStr: string;
var
CPUID:TCPUID;
begin
CPUID:=GetCPUID;
Result:=IntToHex(CPUID[1],8)+IntToHex(CPUID[2],8)+IntToHex(CPUID[3],8)+IntToHex(CPUID[4],8);
end
Edit1.Text := GetCPUIDStr;总是报错: 未定义TCPUID加入
type
TCPUID = array[1..4] of Longint;还是不能编译成功!
以上到底有什么错的地方?
type
TCPUID = array[1..4] of Longint;
应该放在哪里?
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 TForm1.GetCPUIDStr: string;
var
CPUID:TCPUID;
begin
CPUID:=GetCPUID;
Result:=IntToHex(CPUID[1],8)+IntToHex(CPUID[2],8)+IntToHex(CPUID[3],8)+IntToHex(CPUID[4],8);
end
Edit1.Text := GetCPUIDStr;总是报错: 未定义TCPUID加入
type
TCPUID = array[1..4] of Longint;还是不能编译成功!
以上到底有什么错的地方?
type
TCPUID = array[1..4] of Longint;
应该放在哪里?
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;function GetCPUIDStr: string;
var
CPUID: TCPUID;
begin
CPUID := GetCPUID;
Result := IntToHex(CPUID[1], 8) +
IntToHex(CPUID[2], 8) +
IntToHex(CPUID[3], 8) +
IntToHex(CPUID[4], 8);
end;procedure TForm1.Button3Click(Sender: TObject);
begin
Edit4.Text := GetCPUIDStr;
end;