Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model small
- .stack 100h
- .data
- inv db 'Invalid input$'
- new_line db 0ah,0dh,"$"
- space db 20h,"$"
- .code
- main proc
- ; connect code segment and data segment
- mov ax, @data
- mov ds, ax
- ; input label
- mov ah, 1
- int 21h
- mov bl, al
- ; new line
- mov ah, 9
- lea dx, new_line
- int 21h
- ; check if it is a number
- cmp bl, '9'
- jg Invalid
- cmp bl, '0'
- jl Invalid
- sub bl, 48
- mov ch, 1 ; ch for checking bound of Loop2
- Loop1:
- cmp bl, 0 ; bl for checking bound of loop1
- je End_Label
- mov cl, 1
- Loop2:
- mov ah,2
- mov dl, cl
- add dl, 48
- int 21h ; print number
- mov ah, 9
- lea dx, space ; print space
- int 21h
- inc cl
- cmp cl, ch ; if cl > ch then break
- jg End_loop2:
- jmp Loop2
- End_loop2:
- mov ah, 9
- lea dx, new_line ; print a new line
- int 21h
- inc ch
- dec bl ; decrement bl
- jmp Loop1
- ; check if it is a valid input
- Invalid:
- mov ah,9
- lea dx, inv
- int 21h
- End_Label:
- main endp
- end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement