Probleme mit erstem programm.
-
Hallo,
ich bin totaler assemblerneuling und ich habe gerade das erste Programm
aus dem Buch abgeschrieben (MASM). Ich weiß zwar was es macht jedoch
verstehe ich den Kommentar dazu nicht.Ich entschuldige mich für meine Anfängerfragen gleich im voraus aber
ich hoffe jemand möchte mir zu helfen.Meine Fragen stehen in Klammern unter der betreffenden Zeile:
;*********************************************************
;* Aufgabe 1 - Einlesen einer Taste und Anzeige auf *
; dem Bildschirm mit definierter Rückkehr *
; ins Betriebssystem. *
;* PrgName: Prog1.asm *
;*********************************************************.MODEL SMALL
.CODE
mov ah,08h ; liest Tastatur - bringt...
(Bringt eingegebenes Zeichen nach AH, das verstehe ich noch)int 21h ; Zeichencode nach al
(Wieso AL ich dachte AH? eigenartig)mov dl,al
(Warum nicht gleich am Anfang nach DL)mov ah,02h ; bringt Zeichen aus Register...
(Warum jetzt wieder AH?)int 21h ; dl zur Anzeige
(Wurde es nicht gerade nach AH verschoben?)mov ah,4ch ; definierte Rückkehr
int 21h ; zum Betriebssystem
endKönnte mir jemand eine wirklich detailierte und gute Einführung zu den
Themen Register und Segment:Offset empfehlen?Vielen Dank im voraus für alles!
nette Grüße,
ps
-
es gibt asm-tags
;********************************************************* ;* Aufgabe 1 - Einlesen einer Taste und Anzeige auf * ; dem Bildschirm mit definierter Rückkehr * ; ins Betriebssystem. * ;* PrgName: Prog1.asm * ;********************************************************* .MODEL SMALL .CODE mov ah,08h ; liest Tastatur - bringt... (Bringt eingegebenes Zeichen nach AH, das verstehe ich noch) int 21h ; Zeichencode nach al <--- hier wird ein dos-interrupt benutzt, nämlich der 21. ; (Wieso AL ich dachte AH? eigenartig) der erwartet parameter in ah. ; interrupotfunktion 08h ließt ein Zeichen nach al ; http://www.i8086.de/dos-int-21h/dos-int-21h.html mov dl,al ; (Warum nicht gleich am Anfang nach DL) mov ah,02h ; bringt Zeichen aus Register... ; (Warum jetzt wieder AH?) int 21h ; dl zur Anzeige <--- hier wird ein dos-interrupt benutzt, wieder der 21. ; (Wurde es nicht gerade nach AH verschoben?) der erwartet parameter in ah. ; interrupotfunktion 02h schreibt das zeichen aus dl auf die console ; http://www.i8086.de/dos-int-21h/dos-int-21h.html mov ah,4ch ; definierte Rückkehr int 21h ; zum Betriebssystem <--- hier wird ein dos-interrupt benutzt, wieder der 21. ; der erwartet parameter in ah. ; interrupotfunktion 4ch heißt Programm beenden end
aber ob es heut zu tage sinn macht assembler für dos zu lernen?
-
Das ist nicht wirklich relevant, der OP will eine umfangreiche und gute Einführung zu Registern und der Adressierung bei 16Bit.
Hierzu kann ich ihm dieses Tutorial empfehlen, das darauf gut eingeht:
http://www.wirthi.at/w/Assembler-Tutorial_Kapitel_1Man sollte es unter dem Vorbehalt lesen, dass inzwischen 32Bit und Protected Mode (anstatt Real Mode) standard sind.
Will man sich jedoch wirklich mit 16Bit auseinandersetzen, so dürfte dieses Tutorial eigentlich für die Fragen des OP lange reichen.
-
Vielen Dank für eure Antworten.
ps