Guten Tag liebe Gemeinde,
Ich wollte mir ein Programm in Assembler schreiben welches ein ASCII-Zeichen von der Tastatur liest und dann falls dieses ASCII-Zeichen einer Zahl entspricht diese Zahl in Binär umwandelt und dieses Binärwort(sollte nur 4 Bits haben) mir auf den Bildschirm wieder ausgibt. Das Programm soll so lange wiederholt werden bis keine Zahl mehr gedrückt wurde.
Es funktioniert eigentlich soweit nur dass ich, wenn ich eine Zahl eingebe, keine Rückgabe bekomme und das Programm hängen bleibt.
Weiß vielleicht jemand wo mein Fehler ist?
Mit freundlichen Grüßen und vielen Dank schonmal
Mamph
Ich wollte mir ein Programm in Assembler schreiben welches ein ASCII-Zeichen von der Tastatur liest und dann falls dieses ASCII-Zeichen einer Zahl entspricht diese Zahl in Binär umwandelt und dieses Binärwort(sollte nur 4 Bits haben) mir auf den Bildschirm wieder ausgibt. Das Programm soll so lange wiederholt werden bis keine Zahl mehr gedrückt wurde.
Es funktioniert eigentlich soweit nur dass ich, wenn ich eine Zahl eingebe, keine Rückgabe bekomme und das Programm hängen bleibt.
Weiß vielleicht jemand wo mein Fehler ist?
Mit freundlichen Grüßen und vielen Dank schonmal
Mamph
Code:
.MODEL SMALL
.STACK 200h
.DATA
.CODE
PROGRAMMSTART:
MOV AH,1h
INT 21H
CMP AL,27d
JZ FIN
CMP AL,30h
JL FIN
CMP AL,39h
JG FIN
SUB AL,30d
MOV CL,0d
JMP SCHLEIF1
MOV CL,0d
JMP SCHLEIF2
JMP PROGRAMMSTART
SCHLEIF2:
INC CL
POP BX
ADD BL,30d
MOV DL,BL
MOV AH,2h
INT 21h
CMP CL,4h
JLE SCHLEIF2
ONE:
PUSH 0001h
CMP CL,4h
JLE SCHLEIF1
NULL:
PUSH 0000h
CMP CL,4h
JLE SCHLEIF1
SCHLEIF1:
INC CL
SHR AL,1h
JC ONE
JNC NULL
FIN:
MOV AH,4CH
INT 21H
END PROGRAMMSTART