schnittstelle IN/OUT



  • also hiermit:
    http://www.c-plusplus.net/forum/viewtopic.php?t=39769
    habe ich ein problem. ich bekomme bei TASM folgende fehlermeldungen:
    Illegel number und zwar bei den zeilen mit den zahlen "0x3fb".
    woran liegt das? kann es daran liegen, dass ich eine ziemlich alte TASM version benutze?



  • das liegt daran, dass TASM eine andere schreibweise für hexadezimalzahlen verwendet und die schreibweise mit dem "0x" vorne dran nicht kennt. alles was du tun musst ist alle hexadezimalzahlen umzuschreiben. einfach das "x" löschen und hinten ein "h" dransetzen. 0x3fb -> 03fbh



  • Jetzt bekomme ich den Fehler "Constant too large"



  • die befehle IN und OUT nehmen portadressen im bereich 00h bis 0ffh. alles was drüber ist muss man in DX abspeichern und DX in verbindung mit dem befehl verwenden:
    mov dx,03fbh
    in al,dx



  • ok, das prog läuft jetzt, aber ich kann einfach nichts messen.
    ich habe es mit TxD und DTR ausprobiert. mein quellcode für DTR sieht so aus:

    .model small
    .data
      message db "DTR Status is now ON", 10, 13, "$"
    .code
    .startup       
             mov dx,03fch 
             in al,dx
             or al, 64 
    	out dx, al 
    
             lea dx, message
        	mov ah, 9
    	int 21h
    
             mov ah, 1
             int 21h
    .exit
    end
    

    als dan nicht ging, hab ich das ganze mal in ne schleife eingebaut, aber es hat auch nicht funktioniert.
    messen tue ich an GND und DTR (bzw. TxD)
    messe ich falsch oder ist das prog falsch, oder ist noch etwas falsch???

    (kann es an einem trieber oä liegen, weil ich hatte mal ein kleines lüftersteuerungs prog, und das hat auch nicht funktioniert.)


Anmelden zum Antworten