I am making a program in assembly language to convert Decimal number (from user) into Hexa. I am almost completed it but i am facing a issue. Basically issue is that I am taking a input(Decimal) and than convert it into Hexa and printing it but my output replace the input value and showing me output in the same line. I need help to solve this issue. I also attached my code below.
.model small
.stack 100h
.data
Menu db 10, 13, 'Enter a choice (1 or 2):'
     db 10, 13, '1) Convert 1 to 5 Decimal values to Hex'
     db 10, 13, '2) Quit Program', 10, 13, '$'
MenuInputError db 10, 13, 'Choice must be a 1, 2, or 3!'
               db 10, 13, 'Try again!', 10, 13, '$'
Decimal db 10, 13, 'Enter a number with 1 to 5 digits: ', 10, 13, '$'
.code
    Main proc
    mov ax,@data
    mov ds,ax
    
    DisplayMenu:
    mov dx,OFFSET Menu
    mov ah,9
    int 21h
    mov ah,1
    int 21h
    
    CMP al,'1'
    JL DisplayError
    
    CMP al, '3'
    JG DisplayError
    
    CMP al,'1'
    JE Dec2Hex
    
    CMP al,'2'
    JE Quit
    
    DisplayError:
    mov dx, OFFSET MenuInputError
    mov ah,9
    int 21h
    JMP DisplayMenu
    
    Dec2Hex:
    CALL DEC2HEXA
    JMP DisplayMenu
    
    Quit:
    mov ah,4CH
    int 21h
    
    Main endp
    
DEC2HEXA proc
    mov dx,OFFSET Decimal
    mov ah,09h
    int 21h
    mov ax,0
    PUSH ax
    
    Again:
    mov ah,1
    int 21h
    
    CMP al,13 ; If Return is entered, start division.
    JE StartDivision
    
    CMP al,'0'
    JL Again
    
    CMP al,'9'
    JG Again
    
    mov ah,0
    SUB al,30h  ;30h = 48
    mov cx,ax
    POP ax
    
    mov bx,10
    MUL bx
    
    ADD ax,cx
    PUSH ax
    JMP Again
    
    StartDivision:
    mov cx,0
    mov bx,16
    POP ax
    
    Div1:
    div bx 
    PUSH dx 
    ADD cx,1 
    mov dx,0 
    CMP ax,0 
    JNE Div1
    
    HEXA:
    mov dx,0
    POP dx
    ADD dl,30h
    
    CMP dl,39h
    JG MoreHexa
    
    DisplayHexa:
    mov ah,2
    int 21h
    LOOP Hexa
    JMP Skip
    
    MoreHexa:
    ADD dl, 7h
    JMP DisplayHexa
    
    Skip:
    ret
    
    DEC2HEXA endp
End Main
input:

Screen after Input:

 
     
    