Sue84
23.12.2004, 18:10
Hallo!
Ich habe ein Problem mit meinem Programm.
Folgende Aufgabe hatte ich zu realisieren:
Es ist ein Assemblerprogramm zu schreiben,das folgenden
Bildschirminhalt ausgibt:
Mein zweites Assemblerprogramm
Bitte ändern: drit
Mein drittes Assemblerprogramm
Geänderte Buchstaben: 4
Nach Ausgabe der Zeile "Mein zweites Assemblerprogramm"
ist der Benutzer aufzufordern, seine Änderungen einzugeben.
Dazu geben Sie bitte die Zeichenfolge "drit" ein, die vom
Programm an die Stelle "zwei" zu schreiben ist. Danach ist
der neue Text und die Anzahl der geänderten Zeichen auszu-
geben. Die Eingabe ist mittels einer Schleife zu realisieren.
Mein Programm gibt aber dies aus:
Mein zweites Assemblerprogramm
Bitte ändern: dritMein drit
tes Assemblerprogramm
Geänderte Buchstaben:
Hier mein Code:
.MODEL SMALL
.STACK 100h
.DATA
String1 DB "Mein zweites Assemblerprogramm", 10, 13, "$"
String2 DB "Bitte ändern: $"
String3 DB "Mein $"
String4 DB " tes Assemblerprogramm", 10, 13, "$"
String5 DB "Geänderte Buchstaben: $"
Text DB 4 DUP (?) ; 4 Bytes reservieren
DB 10, 13, "$" ; Zeilenumbruch nach Eingabe
.CODE
Start: mov ax, @data
mov ds, ax
mov dx, OFFSET String1 ; Ausgabe 1. und 2. Zeile
mov ah, 9
int 21h
mov dx, OFFSET String2
mov ah, 9
int 21h
mov ah, 1
mov bx, OFFSET Text ; lädt Adresse von Text nach BX
mov cx, 4
schleife_eingabe: ; Benutzereingabe mit Schleife
int 21h
mov [bx], al
inc bx
dec cx
jnz schleife_eingabe
mov dx, OFFSET String3 ; Ausgabe 3. Zeile
mov ah, 9
int 21h
mov dx, OFFSET Text
mov ah, 9
int 21h
mov dx, OFFSET String4
mov ah, 9
int 21h
mov dx, OFFSET String5 ; Ausgabe 4. Zeile
mov ah, 9
int 21h
mov dx, bx ; Anzahl der Buchstaben in bx zur Anzeige bringen
mov ah, 9
int 21h
Nach "Geänderte Buchstaben" wird noch nichts ausgegeben.
Wo liegt der Fehler?
Über jede Antwort wäre ich sehr dankbar!
MfG Sue
Ich habe ein Problem mit meinem Programm.
Folgende Aufgabe hatte ich zu realisieren:
Es ist ein Assemblerprogramm zu schreiben,das folgenden
Bildschirminhalt ausgibt:
Mein zweites Assemblerprogramm
Bitte ändern: drit
Mein drittes Assemblerprogramm
Geänderte Buchstaben: 4
Nach Ausgabe der Zeile "Mein zweites Assemblerprogramm"
ist der Benutzer aufzufordern, seine Änderungen einzugeben.
Dazu geben Sie bitte die Zeichenfolge "drit" ein, die vom
Programm an die Stelle "zwei" zu schreiben ist. Danach ist
der neue Text und die Anzahl der geänderten Zeichen auszu-
geben. Die Eingabe ist mittels einer Schleife zu realisieren.
Mein Programm gibt aber dies aus:
Mein zweites Assemblerprogramm
Bitte ändern: dritMein drit
tes Assemblerprogramm
Geänderte Buchstaben:
Hier mein Code:
.MODEL SMALL
.STACK 100h
.DATA
String1 DB "Mein zweites Assemblerprogramm", 10, 13, "$"
String2 DB "Bitte ändern: $"
String3 DB "Mein $"
String4 DB " tes Assemblerprogramm", 10, 13, "$"
String5 DB "Geänderte Buchstaben: $"
Text DB 4 DUP (?) ; 4 Bytes reservieren
DB 10, 13, "$" ; Zeilenumbruch nach Eingabe
.CODE
Start: mov ax, @data
mov ds, ax
mov dx, OFFSET String1 ; Ausgabe 1. und 2. Zeile
mov ah, 9
int 21h
mov dx, OFFSET String2
mov ah, 9
int 21h
mov ah, 1
mov bx, OFFSET Text ; lädt Adresse von Text nach BX
mov cx, 4
schleife_eingabe: ; Benutzereingabe mit Schleife
int 21h
mov [bx], al
inc bx
dec cx
jnz schleife_eingabe
mov dx, OFFSET String3 ; Ausgabe 3. Zeile
mov ah, 9
int 21h
mov dx, OFFSET Text
mov ah, 9
int 21h
mov dx, OFFSET String4
mov ah, 9
int 21h
mov dx, OFFSET String5 ; Ausgabe 4. Zeile
mov ah, 9
int 21h
mov dx, bx ; Anzahl der Buchstaben in bx zur Anzeige bringen
mov ah, 9
int 21h
Nach "Geänderte Buchstaben" wird noch nichts ausgegeben.
Wo liegt der Fehler?
Über jede Antwort wäre ich sehr dankbar!
MfG Sue