W swoim artykule z PCkuriera 13/97, Wojciech Migda zapomniał o istnieniu procesorów klasy Pentium firm innych niż Intel. Na domiar złego, większość programów testujących poprzestaje na rozpoznaniu "x" w 80x86 nie interesując się producentem kości.
Poniższy fragment kodu powinien znajdować się po rozpoznaniu, że procesor obsługuje rozkaz CPUID. Nie jest to jednak równoważne stwierdzeniu, że jest on co najmniej klasy P5, ponieważ wg dokumentacji instrukcję tę znają procesory już od i486SX w górę.
xor eax,eax
cpuid
mov dword ptr VendorID,ebx
mov dword ptr VendorID+4,edx
mov dword ptr VendorID+8,ecx
Wykorzystane tu zostało działanie rozkazu CPUID gdy rejestr EAX jest wyzerowany. Zwraca on wtedy w rejestrach EBX, EDX i ECX kolejne części 12-bajtowego napisu w kodach ASCII. Przykładowo, dla procesorów firmy Intel rejestry te będą zawierać następujące dane:
EBX - 756E6547h - "uneG"
EDX - 49656E69h - "Ieni"
ECX - 6C65746Eh - "letn"
co po wpisaniu do tablicy "VendorID" da napis "GenuineIntel". Po przetestowaniu programu na różnych komputerach, można pokusić się o stworzenie tabelki:
| VendorID | Firma | Przykłady |
|---|---|---|
| "GenuineIntel" | Intel | i486DX4, i486SX2, P5 |
| "CyrixInstead" | Cyrix | M1, M2 |
| "AuthenticAMD" | AMD | K5, K6 |
| "UMC UMC UMC " | UMC | U5S, U5SD |
Na koniec uwaga: procesory M1 (6x86) firmy Cyrix standardowo nie wykonują rozkazu CPUID (przez co są błędnie rozpoznawane jako 486). Można to jednak zmienić za pomocą specjalnych programów do ustawiania ich wewnętrznych rejestrów (przykładowo, za rozkaz CPUID odpowiada bit 7 rejestru CCR4).
Stronę opracował Michał Szulowski