Azi
Erfahrenes Mitglied
Ich weiß nicht, woran es liegt... Mein Programm soll folgendes machen:
Zuerst soll eine Zahl eingegeben werden. Danach werden so viele Zeichen eingegeben, wie die eingegebene Zahl sagt. Danach werden die Zeichen in umgekehrter Reihenfolge ausgegeben.
Zuerst soll eine Zahl eingegeben werden. Danach werden so viele Zeichen eingegeben, wie die eingegebene Zahl sagt. Danach werden die Zeichen in umgekehrter Reihenfolge ausgegeben.
Code:
.model small
.stack 256
.Code
neu:
mov ah,08h ;lesen
int 21h
cmp al,30h ;wenn keine Zahl, wiederholen
jb neu
cmp al,39h
ja neu
mov dl,al ;Ausgabe
mov ah,02h
int 21h
mov bh,0 ;bh=0
mov bl,dl ;bl=eingegebene zahl
eingabe:
mov ah,08h ;Befehl zum Zeichenlesen eingeben
int 21h ;Befehl ausführen
push ax ;AX sichern
add bh,1 ;bh um eins erhöhen
cmp bl,bh ;wenn bl und bh nicht gleich groß sind
jne eingabe ;springe zu eingabe
mov bh,0 ;bh wieder 0
ausgabe:
pop dx ;Letztes Zeichen nach DX
mov ah,02h ;Befehl zur Ausgabe von DL eingeben
int 21h ;Befehl ausführen
add bh,1 ;bh um eins erhöhen
cmp bl,bh ;wenn bl und bh nicht gleich groß sind
jne ausgabe ;springe zu ausgabe
mov ah,4CH ;Befehl zum Beenden eingeben
int 21h ;Befehl ausführen
END