Montaż, drukowanie numeru ascii

Mam problem z moim kodem zespołu. Chcę wydrukować numer zapisany w rejestrze cx, ale gdy próbowałem go wydrukować, drukował znak ascii zamiast liczby ascii, więc postanowiłem napisać procedurę konwertowania ascii char na wartość ascii. Problem polega na tym, że gdy próbuję wywołać tę procedurę, program zawiesza się i muszę zrestartować dosbox. Czy ktoś wie, co jest nie tak z tym kodem? Dzięki.

P4      PROC                
            MOV AX,CX           ;CX = VALUE THAT I WANT TO CONVERT
            MOV BX,10           
    ASC2:
            DIV BX              ;DIV AX/10
            ADD DX,48           ;ADD 48 TO REMAINDER TO GET ASCII CHARACTER OF NUMBER 
            PUSH AX             ;SAVE AX
            MOV AH,2            ;PRINT REMAINDER STORED IN DX
            INT 21H             ;INTERRUP
            POP AX              ;POP AX BACK
            CMP AX,0            
            JZ EXTT             ;IF AX=0, END OF THE PROCEDURE
            JMP ASC2            ;ELSE REPEAT
    EXTT:
            RET
    P4      ENDP

questionAnswers(4)

yourAnswerToTheQuestion