Как определить фирму производителя CPU?
type
TVendor = array[0..11] of char;
implementation
function GetCPUVendor: TVendor; assembler; register;
asm
PUSH EBX // Save affected register
PUSH EDI
MOV EDI,EAX // @Result (TVendor)
MOV EAX,0
DW $A20F // CPUID Command
MOV EAX,EBX
XCHG EBX,ECX // Save ECX result
MOV ECX,4
@1:
STOSB
SHR EAX,8
LOOP @1
MOV EAX,EDX
MOV ECX,4
@2:
STOSB
SHR EAX,8
LOOP @2
MOV EAX,EBX
MOV ECX,4
@3:
STOSB
SHR EAX,8
LOOP @3
POP EDI // Restore registers
POP EBX
end;
procedure TForm1.Button1Click(Sender: TObject);
begin ShowMessage( GetCPUVendor );
end; |