Ich Zauberstab, um so viele Sterne wie der Eingabewert des Benutzers zu drucken, aber wenn ich einen Zeilenumbruch drucke dann funktioniert meine Schleife nicht, sonst ohne Zeilenumbruch mein Code funktioniert gut. Warum es passiert, verstehe ich nicht.Wenn ich Newline drucke dann stoppt meine Schleife nicht
.model small
.stack 100h
.data
msg1 db "How many star do you want to print: $"
newline db 10,13,"$"
.code
main proc
mov ax,@data
mov ds,ax
mov ah,9
lea dx,msg1
int 21h
mov ah,1 ;taking input number
int 21h
mov bl,al
sub al,48
;if i add newline code here then my loop doesn't stop
; mov ah,9
; mov ah,newline
; int 21h
loop:
mov cx,0
mov cl,al
mov ah,2
mov dl,'*'
Top:
int 21h
loop Top
Exit:
endp
end main
[int 21/ah = 9] (http: //www.ctyme.com/intr/rb-2562.htm) zerstört den Inhalt von _AL_ –
danke für Ihren Kommentar sir.Aber Wie kann ich das loswerden? –
@WalidAlAshik Speichern Sie den Inhalt von 'al' im Voraus und stellen Sie ihn nach dem Interrupt wieder her. – fuz