| Zeile 43: | Zeile 43: | ||
</asm> | </asm> | ||
| − | Um den CPUID-Befehl auszuführen, verwendet man einfach den Assembler-Befehl ''' | + | Um den CPUID-Befehl auszuführen, verwendet man einfach den Assembler-Befehl '''CPUID'''. Die Funktionsnummer der CPUID-Funktion wird dabei im '''EAX'''-Register übergeben. Die Rückgabewerte werden in den Registern '''EAX''', '''EBX''', '''EDX''' und '''ECX''' abgelegt. |
Um zum Beispiel den Vendor-ID-String, also den Herstellernamen, auszulesen, ruft man CPUID mit der Funktionsnummer 0x00000000 auf. | Um zum Beispiel den Vendor-ID-String, also den Herstellernamen, auszulesen, ruft man CPUID mit der Funktionsnummer 0x00000000 auf. | ||
| Zeile 140: | Zeile 140: | ||
{{cs|8}} Brand ID | {{cs|8}} Brand ID | ||
|} | |} | ||
| − | {{Achtung|Text='''APIC ID''' ist nur gültig wenn das '''[[# | + | {{Achtung|Text='''APIC ID''' ist nur gültig wenn das '''[[#EDX_2|APIC-Flag]]''' gesetzt ist.<br/> |
| − | Die Anzahl der logischen Prozessoren ist nur bei gesetztem '''[[# | + | Die Anzahl der logischen Prozessoren ist nur bei gesetztem '''[[#EDX_2|Hyper-Threading-Flag]]''' gültig.<br/> |
| − | '''CLFLUSH Size''' gibt die Größe einer Cache line in 8 Byte Blöcken an. Das Feld ist nur gültig in Verbindung mit einem gesetzten '''[[# | + | '''CLFLUSH Size''' gibt die Größe einer Cache line in 8 Byte Blöcken an. Das Feld ist nur gültig in Verbindung mit einem gesetzten '''[[#EDX_2|CFLUSH-Flag]]'''. |
}} | }} | ||
| Zeile 249: | Zeile 249: | ||
|- | |- | ||
{{csh|1}} 24 | {{csh|1}} 24 | ||
| − | {{csl|1}} Unterstützt die ''' | + | {{csl|1}} Unterstützt die '''FXSAVE''' und '''FXSTOR''' Befehle, mit denen die [[Register#Floatingpointregister|Floatingpointregister]] schnell gesichert werden können |
|- | |- | ||
{{csh|1}} 23 | {{csh|1}} 23 | ||
| Zeile 264: | Zeile 264: | ||
|- | |- | ||
{{csh|1}} 19 | {{csh|1}} 19 | ||
| − | {{csl|1}} Unterstützt den ''' | + | {{csl|1}} Unterstützt den '''CLFLUSH''' Befehl |
|- | |- | ||
{{csh|1}} 18 | {{csh|1}} 18 | ||
| Zeile 276: | Zeile 276: | ||
|- | |- | ||
{{csh|1}} 15 | {{csh|1}} 15 | ||
| − | {{csl|1}} Unterstützt den ''' | + | {{csl|1}} Unterstützt den '''CMOVcc''' Befehl, mit dem Bedingte Verschiebungen vorgenommen werden können |
|- | |- | ||
{{csh|1}} 14 | {{csh|1}} 14 | ||