I want to print an integer with this code but when i assemble with tasm and run program.exe in dosbox, nothing happens and i think it goes into an infinite loop. Do you have an idea?
data segment para public 'data'
data ends
mycode segment para public 'code'
assume cs:mycode, ds:data
main proc far
    push ds
    xor ax, ax
    push ax
    mov ax, data
    mov ds, ax
    
    mov ax, 123
    mov cx, 0
    
    loop_count:
        mov bl, 10
        inc cx
        div bl
        mov dl, al
        mov al, ah
        xor ah, ah
        push ax
        xor ah, ah
        mov ax, dx
        cmp ax, 0
        jne loop_count
    
    
    loop_print:
        pop dx
        add dx, 30h
        mov ah, 02h
        int 21h
        loop loop_print
        
ret
main endp
mycode ends
end main
 
    