[BITS 16]
org 100h

    push    ax
    push    cx
    push    dx
    push    si
    mov     dx,10b 
    mov     ax,dx   ;Assuming number to print starts in DX
    mov     si,10   ;decimal 10
    xor     cx,cx   ;Initialize count at 0

    NonZero:
    xor     dx,dx   ;Clear last remainder
    div     si
    push    dx      ;Save digits in reverse order
    inc     cx
    or      ax,ax   ;Is original number down to 0 yet?
    jnz     NonZero ;No, continue looping

    mov     ah,02h

    WriteDigitLoop:
    pop     dx
    add     dx,"0"  ;Convert to ASCII
    int     21h     ;  and print
    loop    WriteDigitLoop

    EndDecimal:
    pop     si
    pop     dx
    pop     cx
    pop     ax