Der CPUID Befehl wird benutzt, um Informationen über die Fähigkeiten eines Prozessors zu erhalten. (Wie zum Beispiel den Herstellernamen, Modelnummer, die Größe des Cache ...) == Wie man CPUID benutzt == Um den CPUID-Befehl auszuführen, schreibt man einfach den ASM-Befehl CPUID in den Code. Die Parameter werden dabei im Register EAX angegeben. Um z.B. den Vendor-ID-String (Herstellername) zu bekommen, ruft man CPUID mit dem Parameter 0x0 in EAX auf.
mov eax, 0x0
cpuid
Natürlich gibt der CPUID-Befehl auch ein Ergebnis zurück. In diesem Fall gibt er einen String zurück, dessen ASCII-Werte in EBX, EDX und ECX liegen. Wenn man den Inhalt dieser drei Register (in dieser Reihenfolge!) hintereinander in den Speicher schreibt, erhält man einen String, die Vendor-ID. Jeder Hersteller hat eigene Vendor-ID. Achtung: Der String ist nicht nullterminiert ! === Vendor-ID der einzelnen Hersteller === * AMD: "AuthenticAMD" * Intel: "GenuineIntel" * VIA: "CentaurHauls" * Transmeta: "GenuineTMx86" * Cyrix: "CyrixInstead" * Centaur: "CentaurHauls" * NexGen: "NexGenDriven" * UMC: "UMC UMC UMC " * SiS: "SiS SiS SiS " * NSC: "Geode by NSC" * Rise: "RiseRiseRise" == Hinweise == Es gibt Befehle, die nur für Intel bzw. AMD Prozessoren verfügbar sind. Solche Befehle sollte man nicht ausführen, wenn man nicht weiß von welchem Hersteller die CPU ist! Z.B. sollten CPUID-Befehle, die nur für Intel-CPU´s gelten, nicht auf einer AMD-CPU ausgeführt werden. == Siehe auch == [http://wiki.osdev.org/CPUID Englischer Artikel über den CPUID-Befehl] [http://bochs.sourceforge.net/techspec/24161821.pdf Intels CPUID-Spezifikation] [http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25481.pdf AMDs CPUID-Spezifikation] [[Category:Glossar]] [[Category:x86]] [[Category:x86 Befehle]]