Program CPUVendor;
{Program to display CPU Vendor}
{WARNING: Assumes CPUID supported}
Var
VEN: string[12];
Begin
{Call CPUID}
Asm
{EAX determines function}
mov eax,$0
cpuid
mov [VEN],12 {String length}
mov [VEN + 1],ebx
mov [VEN + 5],edx
mov [VEN + 9],ecx
{These registers are modified}
End ['eax','ebx','ecx','edx'];
{Display results}
writeln('CPU Vendor: ',VEN);
End;