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