.model small
.stack 100
.data
    count db 0
    num db 223
     
.code
    main proc
        mov ax, @data
        mov ds, ax
         
        mov cl,16       ;divide by  
        mov ax, 0
        mov al, num   
        
         
        again1:
            mov dx,0    ; puting 0 in the high part of the divided number (DX:AX)
            div cx      ; DX:AX/cx. ax=dx:ax/cx and dx=dx:ax%cx(modulus)  
            
            cmp dl, 9   
            ja kytu     ; neu dx >9 thi chuyen sang ky tu (A-F)
            cmp dl, 9
            jna so      ; neu dx < 9 thi doi sang so
        tiep:                   
            push dx
            inc count
            cmp ax,0
            jne again1
         
        again2:
            pop dx
            mov ah, 2
            int 21h
            dec count
            cmp count, 0
            jne again2  
        
        jmp thoat
        
        kytu:
            add dl, 37h
            jmp tiep  
        so:
            add dl, 30h
            jmp tiep
        thoat: 
            mov ah, 4ch
            int 21h
     
    main endp
end main