Autor Thema: Ganz einfache CPUID  (Gelesen 3259 mal)

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« am: 23. November 2006, 19:35 »
WIe kann man ermitteln, ob die CPU von Intel stammt oder von AMD ?

PS: ich schötze mal dass das einach ist, habs bei bitmaster gesehen dass dann da je nach cpu GenuineIntel oder AuthenticAMD stand

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #1 am: 23. November 2006, 20:45 »
Du brauchst dazu die Funktion 1. Diese musst du in eax schreiben und dann cpuid aufrufen. In den registern ecx,ebx und edx (diese Reihenfolge) befindet sich dann ein (logischerweise) insgesamt 12 Byte großer String. Du kopiert diese Werte also einfach in einen leeren 12 Byte String und testest dann ob dieser AuthenticAMD oder GenuineIntel beinhaltet.

mov eax,1
cpuid
mov rsi,ZeroString
mov [rsi],ecx
mov [rsi+4],ebx
mov [rsi+8],edx

mov rsi,ZeroString
mov rdi,IntelString
mov rcx,12/4
rep cmpsd
je IntelCPU

mov rsi,ZeroString
mov rdi,AMDString
mov rcx,12/4
rep cmpsd
je AMDCPU

;keine AMD oder Intel CPU

...

Ich habe den Code jetzt auf die Schnelle geschrieben. Aber so oder so ähnlich sollte es Funktionieren. (64 Bit Register evt. in 32 Bit umwandeln).

bitmaster
In the Future everyone will need OS-64!!!

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 24. November 2006, 09:21 »
oki danke ich probiers mal aus mit 32 bit reigsitern...
das ganzefunktioniert auch im realmode ne?

@bitmaster: du wolltest mir noch das image schicken.


bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #3 am: 24. November 2006, 15:29 »
das ganzefunktioniert auch im realmode ne?logisch

du wolltest mir noch das image schicken.Brauch ich doch nicht mehr. Ich bekomme in ein paar Tagen meinen neuen 64 Bit PC. *freu*

bitmaster
In the Future everyone will need OS-64!!!

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 24. November 2006, 16:51 »
mkay danke nochmaaaaal  :mrgreen: :mrgreen:

Svenska

  • Beiträge: 1 792
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 24. November 2006, 20:13 »
Denke aber daran, durch andere Tricksereien auch festzustellen, dass CPUID auch unterstützt wird (afaik erst ab späten 486ern [DX4, SL, SL2] und Pentiums unterstützt).

Sonst schmiert dein System sofort ab.

Gruß

Coffee

  • Beiträge: 470
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 24. November 2006, 21:09 »
naja ich werds testen mit mehreren system wos geht und do nich
(80286, 80486DX2, Pentium II, AMD DUron, AMD Athlon XP 2600+, AMD Athlon 64 3800+, ....)was so hier rumsteht

bitmaster

  • Troll
  • Beiträge: 1 138
    • Profil anzeigen
    • OS-64 = 64 Bit Operating System
Gespeichert
« Antwort #7 am: 24. November 2006, 21:28 »
@Svenska: Stimmt habe ich ganz vergessen, da ich das ja nicht brauche. Denn jeder 64 Bit Prozessor hat den CPUID Befehl.

bitmaster
In the Future everyone will need OS-64!!!

 

Einloggen