Hardware ansprechen (Motherboard)



  • Hallo !

    Ich habe schon viel danach gegooglet wie man z.B. die CPU oder MB Temp. auslesen kann. Allerdings findet man dazu keine Infos 😞

    Es geht mir nicht nur darum die Temp. auszulesen ich würde gerne allgemein wissen wie man zb das Motherboard ansprechen kann, und wo man infos findet ?? Ich weiß das es von den Chipsätzen abhängt, aber mehr auch nicht.

    Wäre dankbar für jede Hilfe

    lg c 4-ever



  • Hat niemand ein par tipps ??



  • es exisitieren mit sicherheit bibliotheken für die gängigsten chipsätze.
    wenn du allerdings wirklich selbst hardwarenah programmieren möchtest,
    kommst du um ein paar zeilen assembler nicht herum. das schließt natürlich
    ein, dass du dir zuerst einmal die spezifikationen für den chipsatz runterladen
    musst. jeder hat andere befehlssätze und methoden wie er daten repräsentiert.
    von daher kannst du hier keine spezielle antwort erwarten. also
    chipsatz heraussuchen, welcher für die temperaturmessung deines motherboards
    verantworltich ist und gegebenfalls im assembler forum nachfragen.



  • Danke !! Wußte nicht das es ohne ASM nicht geht, und auch das es für die Chipsätze Bibliotheken gibt wußte ich auch noch nicht.

    Danke für die Hilfe



  • c 4-ever schrieb:

    ... und auch das es für die Chipsätze Bibliotheken gibt wußte ich auch noch nicht.

    das habe ich nicht gesagt, oder warte, ich habe es gesagt aber nicht so gemeint 😃
    ich meinte das es bestimmt bibliotheken gibt, die sich darauf verstehen zum
    beispiel temperaturen von den gängigsten sensor schaltkreisen auszulesen.
    google mal nach lm-sensors, ist zwar linuxspezifisch, aber da kannst du einen
    einblick nehmen, wie so etwas realisiert werden kann.



  • kann man die temp o. CPU takt nicht über die registriy auslesen, solceh diagnose tools machen das doch aus so...



  • BorisDieKlinge schrieb:

    kann man die temp o. CPU takt nicht über die registriy auslesen, solceh diagnose tools machen das doch aus so...

    das geht bestimmt unter windows mit dem performancecounter. aber er wollte
    ja den hardcore weg wissen 🙂



  • Hallo !

    Das es irgendwie über die Registry geht hab ich auch schon gelesen/gehört 🙂

    Aber wenn, dann will ich schon wissen wie das richtig geht und wie man die Hardware ansprechen kann. Fang jetzt gerade an mein ASM wissen zu vertiefen, hab ich schon länger vorgehabt aber immer vor mich hingeschoben, ist eigentlich ganz intressant 🙂 nur leider findet man nicht allzu viele deutsche Tutorials.

    Blick mich nur noch nicht durch warum es so viele Assembler gibt und welchen ich für den Anfang benutzen soll (TASM und MASN kenn ich, aber NASM FASM ?! ) Mit Zeit kommt Rat ^^ und dann die Temperaturauslesung über den Hardcore weg 😛



  • c 4-ever schrieb:

    Hallo !

    Das es irgendwie über die Registry geht hab ich auch schon gelesen/gehört 🙂

    Aber wenn, dann will ich schon wissen wie das richtig geht und wie man die Hardware ansprechen kann. Fang jetzt gerade an mein ASM wissen zu vertiefen, hab ich schon länger vorgehabt aber immer vor mich hingeschoben, ist eigentlich ganz intressant 🙂 nur leider findet man nicht allzu viele deutsche Tutorials.

    find ich gut 👍 nur nicht verzagen, wenns mal nicht so läuft wie man will. assembler kann richtig spass machen 🙂
    mit den tutorials stimmt, aber ich glaube bei den FAQ's hier müsste einiges hilfreiche
    dabei sein. gegebenenfalls gibts hier (irgendwo :D) auch buchtipps.

    c 4-ever schrieb:

    Blick mich nur noch nicht durch warum es so viele Assembler gibt und welchen ich für den Anfang benutzen soll (TASM und MASN kenn ich, aber NASM FASM ?! ) Mit Zeit kommt Rat ^^ und dann die Temperaturauslesung über den Hardcore weg 😛

    assembler gibt es so viele, weil man sich an keinen standard halten muss wie es bei anderen weitverbreiteten sprachen der fall ist, nur der befehlsatz der zielarchitektur ist relevant und wird somit natürlich von jedem gängigen assembler gleich unterstützt. selbst die syntax ist nicht vorgeschrieben. jeder hat seine eigenen vor- und nachteile, wie und welche makros er anbietet, welche syntax er versteht und welches ausgabeformat er unterstützt. meine lieblingsassembler sind nasm und yasm, da sie die zwei gängigsten syntaxen (intel und at&t) unterstützen und eine breite palette an ausgabeformaten bieten.



  • sothis_ schrieb:

    das geht bestimmt unter windows mit dem performancecounter.

    irgendwie ging das messen auch mit 'rdtsc' und Sleep. müsst ihr mal googlen.
    🙂



  • asm-fan schrieb:

    irgendwie ging das messen auch mit 'rdtsc' und Sleep.

    Red' keinen Blödsinn! rdtsc = Read Timestampcounter und Sleep... nomen est omen.

    greetz, Swordfish



  • Hallo ! 🙂

    Danke für die Tipps mit den assemblern

    Tutorials hab ich schon ein paar gefunden hier in der FAQ 🙂

    Hab auch schon mein ertes Hello World programm ^^ aber mehr abgeschrieben als verstanden. Aber ja, es macht auch richtig spaß 🙂 vor allem wenn man auch immer liest wieviel man mit ASM machen kann, das man die _volle_ Kontrolle über das System hat (hab ich zumindest gelesen) dann freut man sich gleich viel mehr darauf asm zu lernen 🙂 Außerdem lernt man so das System auch richtig kennen, das ist auch ein Grund warum man sich zumindest einmal im leben mit asm auseinander setzen sollte. Werd mir auch bald ein Buch kaufen 🙂

    Was mich auch noch verwirrt, auf einem 32 bit System spricht man doch mit EAX alle 32 , mit AX 16 mit Al Ah 8, bei einem 64 bit ? EAX = 64, AX = 16, Ah Al = 8 ?? Aber is jetzt noch nicht so wichtig 🙂



  • c 4ever goes to asm 4ever schrieb:

    Was mich auch noch verwirrt, auf einem 32 bit System spricht man doch mit EAX alle 32 , mit AX 16 mit Al Ah 8, bei einem 64 bit ? EAX = 64, AX = 16, Ah Al = 8 ?? Aber is jetzt noch nicht so wichtig 🙂

    naja, so ganz hast du es mit der aussage noch nicht getroffen 😃
    bei prozessoren der x86_64 architektur beginnen alle 64 bit breiten register
    mit einem 'r'. also heißen die general purpose register zum beispiel rax, rbx, rcx, rdx.
    mit eax bezeichnet man nicht "alle" 😃 eax ist nur ein 32 bit breites register von vielen 🙂

    @mods: bitte ins assembler forum verschieben, lol



  • Ahh verstehe 🙂 das mit dem r wußte ich nicht.

    In dem Tutorial, welches ich gerade lese, wurde gesagt, mit EAX spricht man bei 32Bit Systemen den ganzen Register an, bei 16 Bit Systemem ist der ganze Register ja schon mit AX angesprochen. Soweit hab ich das verstanden 🙂 falls das falsch ist bitte korrigieren.

    Was mir gerade auffällt... wenn ich ein 32 Bit OS habe, aber meine CPU 64Bit unterstüzt, kann ich dann auch rax verwenden ?? Bei C++ ist ein int so groß wie die OS Bit Architektur.

    Entschuldigung an die Mods, wußte nicht das es ein ASM Thread wird.



  • Dieser Thread wurde von Moderator/in Tim aus dem Forum ANSI C in das Forum Assembler verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • asm 4ever schrieb:

    Was mir gerade auffällt... wenn ich ein 32 Bit OS habe, aber meine CPU 64Bit unterstüzt, kann ich dann auch rax verwenden ?? Bei C++ ist ein int so groß wie die OS Bit Architektur.

    nö. ein 32bit betriebssystem schaltet den prozessor beim start in den compatibility mode. in diesem sind die 64bit breiten register nicht verfügbar.



  • asm 4ever schrieb:

    Was mir gerade auffällt... wenn ich ein 32 Bit OS habe, aber meine CPU 64Bit unterstüzt, kann ich dann auch rax verwenden ??

    Leider nicht. Die Vorzuege der 64Bit-Architektur werden erst im 64Bit-Modus der CPU zugaenglich. Und den kannst du aus einem 32Bit-System nicht erreichen.

    Zu den Registern wirf nochmal einen Blick in die FAQ. Da gibt es auch einen Thread, der die Zusammenhaenge von eax bis al ein wenig erklaert.

    Sooo und nun noch allgemein... Ich will dich ja nun nicht demotivieren oder so, aber um das mal klar zu stellen: so weit haettest du zumindest den Zugriff auf das Chipset (genauer werden einige der Sensoren wahrscheinlich ueber den SM-Bus angesteuert - ka, ob die CPU-Temperatur neuerdings ueber spezielle Register in der CPU direkt ausgelesen wird - dafuer waere dann evtl. Assembler noetig) auch ohne Assembler haben koennen. So viel kann C nun gerade auch noch. 😃
    Zudem ist es meiner Erfahrung nach ziemlich schwierig, den Herstellern irgendwelche Unterlagen ueber ihre Hardware aus den Rippen zu leiern. Am ehesten kommst du also wirklich nur ueber Linux-Sources an die gewuenschten Informationen.



  • Nobuo T schrieb:

    genauer werden einige der Sensoren wahrscheinlich ueber den SM-Bus angesteuert - ka

    yup 🙂

    Nobuo T schrieb:

    Zudem ist es meiner Erfahrung nach ziemlich schwierig, den Herstellern irgendwelche Unterlagen ueber ihre Hardware aus den Rippen zu leiern. Am ehesten kommst du also wirklich nur ueber Linux-Sources an die gewuenschten Informationen.

    dem stimme ich grundsätzlich zu, ist bei cent-artikel wie hardware monitoring chips, wie dem weit verbreiteten LM75 von
    national semiconductor und all seiner nachbauten, in der regel kein problem.


Anmelden zum Antworten