Answer to Question #350856 in Assembler for fbdhmfjmeynwg

Question #350856

• Basic Looping Task:


Based on the user's integer input (0-9).


Display sets of "*"



Example:



Enter a number: 6



******




1
Expert's answer
2022-06-15T07:06:54-0400
; DosBox
DATA SEGMENT
msgEnter    db "Enter a number (0-9): $"
invalid    DB 10,13,"Invalid input.",0ah,0dh,'$'
NL        db     10,13,'$'
DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
    MOV AX,DATA
    MOV DS,AX

    mov dx, offset msgEnter
    mov ah, 9
    int 21h    
    
; wait for any key press:
    mov ah, 0
    int 16h    
    mov     ah, 0eh
    int     10h  
    
; Check input
   cmp al,'0'
   jl _wrong        ; char < '0'
   cmp al,'9'        ; char > '9'
   jg _wrong

; AL = ASCII code of key pressed
    SUB AL, 30H        ; AL NUMBER
    xor cx,cx
    mov cl,al        ; cl NUMBER
    
    cmp cl,0
    jz final
    
     mov dx, offset NL
    mov ah, 9
    int 21h

    
    
 L1:
    mov ah, 0eh
    mov al,'*'
    int 10h
  loop L1
    mov dx, offset NL
    mov ah, 9
    int 21h   
   jmp final
   
_wrong:
   mov dx, OFFSET invalid
       mov ah, 9
    int 21h      
 
final:    
    mov ah, 4ch
    int 21h
CODE ENDS
END START

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
APPROVED BY CLIENTS