LZS_405 0 Newbie Poster

.model small
.stack 100h
.data

Spc     db 0dh,0ah, " $"                                                ;New Line
;Bases Calculation in Calculator
BsA31   db 0dh,0ah, "   Base 03 Addition "                          ;Addition Base 03
        db 0dh,0ah, " "
        db 0dh,0ah, "Addend[00-22]:  $"
BsA32   db 0dh,0ah, "Augend[00-22]:  $"

SumA    db 0dh,0ah, "   Sum is    : $"                             ;Sum

;Calculation Logic
Dg11    db 0
Dg12    db 0
NoAd1   db 0
NoAd2   db 0
SumAd   db 0

.code
main proc

mov ax,@data                    ;initialize ds
mov ds,ax

AdBs3:
    mov ah,09h
    lea dx, Spc
    int 21h

    lea dx, BsA31               ;Addend
    int 21h
    mov ah,01h
    int 21h                     ;1st Digit

    sub al,30h
    mov ch,al


    mov ah,01h
    int 21h                     ;2nd Digit

    sub al,30h
    mov cl,al
    jmp AdBs32

AdBs32:

    mov ah,09h
    lea dx, BsA32               ;Augend
    int 21h
    mov ah,01h
    int 21h                     ;1st Digit

    sub al,30h
    add al,ch                   ;4
    mov ch,al

    mov ah,01h
    int 21h                     ;2nd Digit

    sub al,30h
    add al,cl
    mov cl,al

    ;Addition
    mov ah,09h
    lea dx, SumA
    int 21h

    mov ah,0000h
    mov bl,03h
    mov al,ch
    div bl                      ;1 r1
    mov ch,ah                   ;0102
    mov bh,al                   ;0103

    mov ah,0000h
    mov al,cl                   ;4
    add al,bh                   ;4 + 1 = 5
    div bl                      ;1 r2
    mov bx,ax                   ;0201 > r = 02 q = 01

    mov ah,02h
    add bx,3030h
    mov dl,bl
    int 21h
    mov dl,bh
    int 21h

    add ch,30h
    cmp ch,30h
    jz  AdBs3

    mov dl,ch
    int 21h

    mov ah,4Ch                      ;end here
    int 21h
AdDg3:
    sub bh,30h
    mov al,bh
    mov cl,10h
    mul cl
    mov cx,ax
    add cx,3030h
    mov ch,10h
    cmp cl,ch
    je AdDg3

    mov ah,4Ch                      ;end here
    int 21h

AdDg32:
    mov ah,02h

    mov dl,cl
    int 21h

    mov ah,4Ch                      ;end here
    int 21h

main endp
end main

Output Error:

21213.png

12 + 12 is the correct but other is not like 21 + 12 / 12 + 12...