Code: Alles auswählen
;- Prozessor-String mittels CPUID direkt auslesen
;- "Helle" Klaus Helbing, 24.06.2007, PB v4.02
Procedure Get_Prozessor_String(StringAdresse)
!mov eax,80000000h ;Test, ob CPU aktuell genug ist um den String zu liefern
!cpuid
!cmp eax,80000004h
!jae @f ;alles o.K.
!xor eax,eax ;Rückgabewert = Null für eventuelle Auswertung Fehlschlag
ProcedureReturn
!@@:
!mov esi,[p.v_StringAdresse]
!xor edi,edi
!@@:
!mov eax,80000002h
!add eax,edi
!cpuid
!mov [esi],eax
!mov [esi+4],ebx
!mov [esi+8],ecx
!mov [esi+12],edx
!inc edi
!cmp edi,3
!je @f
!add esi,16
!jmp @b
!@@:
!mov eax,1 ;Rückgabewert <> Null für Erfolg
ProcedureReturn
EndProcedure
ProzessorString$ = Space(48) ;der String kann max.48 Zeichen lang sein
Get_Prozessor_String(@ProzessorString$)
MessageRequester("Prozessor-String mittels CPUID auslesen", ProzessorString$)
Helle