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.)