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;