Zum Inhalt springen

hardware infos auslesen???


TinTin

Empfohlene Beiträge

Zum Thema CPU Informationen:

versuch doch mal die Funktion 'GetSystemInfo()'

SYSTEM_INFO sysInfo;

GetSystemInfo( &sysInfo );

sonstige Informationen zur CPU (wie: Geschwindigkeit; Hersteller etc. ) findest du in der Registry im Schlüssel:

"HKEY_LOCAL_MACHINE\Hardware\Description\System\CentralProcessor\0"

hier einfach auslesen.

Hoffe, ich konnte helfen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also um Infos übers Board auszulesen, musste ich im Betrieb mal was machen,

Wir mussten nen String aus dem HMI-Bereich auslesen. Dort stehen standardmässig auch alle anderen Boarddaten drin.

Vielleicht kannst ja was brauchen. ;)

Code mit TASM und TLINK !!

;**************************************

; STRINGS

;**************************************

DATEN SEGMENT

NFEXONE DB "!!!!!!!!!!! exone fehlt !!!!!!!!!!!","$"

FEXONE DB "exone gefunden !","$"

FEXTRA DB "extracomputer gefunden !","$"

NFEXTRA DB "!!!!!!!!!!! extracomputer fehlt !!!!!!!!!!!","$"

STRING1 DB "exone","$"

STRING2 DB "extracomputer"

STRREADINDEX DW 1 DUP(0)

STRREADINDEXOFFSET DW 1 DUP(0)

STRLEN DW 1 DUP(0)

STRPOINTER DB 1 DUP(0)

TABLEOFFSET DW OFFSET STRING1

DW OFFSET STRING2

DW OFFSET NFEXONE

DW OFFSET FEXONE

DW OFFSET FEXTRA

DW OFFSET NFEXTRA

DATEN ENDS

;**************************************

; CODE SEGMENT

;**************************************

CODE SEGMENT

ASSUME CS:CODE,DS:DATEN,ES:NOTHING

START: ;**************************************

; Initialisierungen

;**************************************

MOV AX,DATEN

MOV DS,AX ; Stackpointer einrichten

;******** nach exone suchen *********

MOV [sTRREADINDEX],00H; Index des Strings auf Null setzen

MOV DX,0E000H ; Segmentadresse setzen

MOV ES,DX ; diese in es speichern

MOV BX,00000H ; Offset in BX ablegen

MOV DX,ES:BX

MOV [sTRREADINDEXOFFSET],00H

MOV [sTRLEN],04H

CALL FINDSTRING ; nach "exone" suchen

JE EXONEFOUND ; gefunden ?

MOV AH,02H

MOV DL,07H

INT 21H

MOV BX,04H ; Offset des Strings aus Tabelle setzen

CALL SHOWMESSAGE ; nein ! Meldung ausgeben

;******** nach extracomputer suchen *********

EXTRACOMPUTERSEARCH:

MOV [sTRREADINDEXOFFSET],02H

MOV [sTRREADINDEX],00H; Index des Strings auf Null setzen

MOV [sTRLEN],0CH

MOV DX,0E000H ; Segmentadresse setzen

MOV ES,DX ; diese in es speichern

MOV BX,0000H ; Offset in BX ablegen

MOV DX,ES:BX

CALL FINDSTRING ; nach "extracomputer" suchen

MOV DL,0AH ; Zeichen in Register für Ausgabe

MOV AH,02H ; positiv

INT 21H ; Zeichen ausgeben

MOV DL,0DH ; Zeichen in Register für Ausgabe

MOV AH,02H ; positiv

INT 21H ; Zeichen ausgeben

JE EXTRAFOUND ; gefunden ?

MOV AH,02H

MOV DL,07H

INT 21H

MOV BX,0AH ; Offset des Strings aus Tabelle setzen

CALL SHOWMESSAGE ; nein ! Meldung ausgeben

ENDE:

MOV AH,4CH

INT 21H

EXONEFOUND: MOV BX,06H ; Offset des Strings aus Tabelle setzen

CALL SHOWMESSAGE

JMP EXTRACOMPUTERSEARCH

EXTRAFOUND: MOV BX,08H ; Offset des Strings aus Tabelle setzen

CALL SHOWMESSAGE

JMP ENDE

SHOWMESSAGE PROC NEAR

MOV AX,DATEN

MOV DS,AX

MOV DX,[TABLEOFFSET+BX]

MOV AH,9H

INT 21H

RET

SHOWMESSAGE ENDP

;**************************************

; SUCHROUTINE

;**************************************

FINDSTRING PROC NEAR

PUSH BX

MOV BX,[sTRREADINDEXOFFSET] ; Offset für Stringtabelle holen

MOV CX,[TABLEOFFSET+BX] ; Pointer auf String in CX

POP BX

PROCSTART: PUSH BX

CMP BX,0FFFEH ; sind wir am Segmentende ?

JE SEGENDE

MOV DX,ES:BX ; Speicheradresse in...

MOV AX,DX ; AX speichern

MOV BX,CX

MOV DX,[sTRREADINDEX]

ADD BX,DX

CMP AL,[bX] ; Vergleich der Zeichen

POP BX ; physikalischen Offset wieder holen

JE MATCH

CMP [sTRPOINTER],01H ; war schon etwas gefunden worden ?

JNE WEITER

DEC BX ; Zeiger auf Speicher wird hier nicht erhöht !

MOV [sTRPOINTER],00H ; wieder Flag setzen, dass z.Zt. keine Übereinstimmung herrscht !

WEITER: INC BX

MOV DX,[sTRREADINDEXOFFSET]

MOV [sTRREADINDEX],DX ; Indexierung wieder von vorn !

JMP PROCSTART

MATCH: MOV AX,[sTRLEN]

;MOV AX,[sTRREADINDEX]

CMP [sTRREADINDEX],AX ; sind wir am Ende ?

JE SUCCESS ; Übereinstimmung gefunden !

MOV [sTRPOINTER],01H ; wir haben was gefunden...Flag muss gesetzt werden

INC [sTRREADINDEX] ; Indexierung erhöhen !

INC BX

JMP PROCSTART

SEGENDE: POP BX

MOV AX,ES

CMP AX,0E000H ; sind wir noch im 1. Segment ?

JE NEXTSEG

MOV AX,00H ; FALSE zurückliefern

CMP AX,01H

RET

NEXTSEG: MOV DX,0F000H ; Segmentadresse setzen

MOV ES,DX ; diese in es speichern

MOV BX,00000H ; Offset in BX ablegen

MOV DX,[sTRREADINDEXOFFSET]

MOV [sTRREADINDEX],DX ; Indexierung wieder von vorn !

JMP PROCSTART

SUCCESS:

RET

FINDSTRING ENDP

;**************************************

CODE ENDS

END START

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...