Witam
Pisze aktualnie program dodający dwie wielocyfrowe liczby z pomocą stosu.
To jest jego część testowa.Problem polega na tym że po zrzuceniu ze stosu liczby zostaje dodana ona w stałej po czym wyświetla mi wynik w postaci hex czyli odpowiednik ascii np.: Wpisuje liczbę 34 wrzucam ja na stos i zdejmując mnożę przez kolejne potęgi 10 i dodaje ją do zmiennej.Nie wiem czemu po wyświetleniu zmiennej na ekranie wyświetla mi "R" czyli 22hex po przeliczeniu 34 dec. Mam prośbę czy potrafi ktoś pomóc przerobić ten kod aby wyświetlał podaną liczbę dec.
Pozdrawiam.

MojStos SEGMENT STACK
DB 64 DUP ('Stos!!!')
MojStos ENDS

MojeDane SEGMENT
x DW 0
y DW 0
MojeDane ENDS

MojProgram SEGMENT

       assume CS:MojProgram,DS:MojeDane

Main PROC

Start: mov ax , MojeDane
mov ds,ax
mov [y],10
mov Ah,01h
int 21h
cmp al,13
je Ze_stosu
mov bl,al
sub bl,30h
jne Na_stos

Na_stos PROC
push bx
inc si
jmp Start
Na_stos ENDP

Ze_stosu PROC
pop bx
cmp di,0
je Potega0
jne Potega
Ze_stosu ENDP

Potega0 PROC
mov ax,1
mul bx
mov [x],ax
inc di
cmp di,si
je Nie_potrzebne
jne Ze_stosu
Potega0 ENDP

Potega PROC
mov cx,di
mov ax,cx
petla:
mov bp,[y]
mul bp
loop petla
mul bx
add [x],ax
dec si
cmp si,di
je Nie_potrzebne
jne Potega
Potega ENDP

Nie_potrzebne PROC

	mov ax,0
	mov ax , MojeDane
	mov ds,ax
	mov dx,[x]


	mov ah,02h
	int 21h




	mov	ah, 0
   	int	16h



      	mov  AH,4CH
       	mov  AL,0
       	int  21H

Nie_potrzebne ENDP

Main ENDP

MojProgram ENDS
END Start