Ich habe heute mal wieder das Intel-Handbuch ausgegraben und ein bisschen mit dem CPUID-Befehl herumgespielt. Was ich aber komisch finde ist, dass die Ausgaben, wenn sie von mir programmiert sind, anders sind, als von CPU-Z.
Zum Beispiel:
Family Code:
CPUID gibt in EAX[11:8] die Zahl 15 aus, in CPU-Z steht bei 'Family' allerdings "F" (hä?! ein Buchstabe?)
Extended Model:
CPUID gibt in EAX[19:16] die Zahl 0 aus, in CPU-Z steht bei ExtModel allerdings 3
Extended Family:
CPUID gibt in EAX[27:20] die Zahl 2 aus, in CUP-Z steht bei ExtFamily allerdings 11.
Hier mal ein Code:
Code: Alles auswählen
Define.l cpuid
Define.b model, family, familyex, modelex
!MOV eax, $01
!CPUID
!MOV [v_cpuid], eax
!AND eax, 240
!SAR eax, 4
!MOV [v_model], al
Debug "Model ID:"
Debug model
!MOV eax, [v_cpuid]
!AND eax, 3840
!SAR eax, 8
!MOV [v_family], al
Debug "Family Code:"
Debug family
!MOV eax, [v_cpuid]
!AND eax, 983040
!SAR eax, 16
!MOV [v_modelex], al
Debug "Extended Model:"
Debug modelex
!MOV eax, [v_cpuid]
!AND eax, 267386880
!SAR eax, 20
!MOV [v_familyex], al
Debug "========================="
Debug "Extended Family:"
Debug familyex
