How can i show the 3 digit answer?
Note: I have Base 3 needed in addend and augend same as the answer need is base 3 how can i show ? I'am using notepad++ then tasm add.asm / tlink add / add. to execute the program. I'am new in dosbox so just want to learn how to show 3 digit answer in base 3.
My Code in notepad++:
.model small
.stack 100h
.data
Spc db 0dh,0ah, " $" ;New Line
ErAd31 db 0dh,0ah, "Input only number to proceed [00-22 only]. $" ;Error Input Addition Addend and Augend
ErAd32 db 0dh,0ah, "Input only [Y/y] Add Again [N/n] No. $" ;Error Input Add Again
;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
AgA db 0dh,0ah,0dh,0ah, "Add Again[Y/N]? : $" ;Sum Again
;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
cmp al,29h
jle ErrAd31
cmp al,33h
jge ErrAd31
sub al,30h
mov Dg11,al
mov ah,01h
int 21h ;2nd Digit
cmp al,29h
jle ErrAd31
cmp al,33h
jge ErrAd31
sub al,30h
mov Dg12,al
mov al, Dg11
mov bl,10h
mul bl
mov NoAd1,al
mov al,Dg12
add NoAd1,al
jmp AdBs32
ErrAd31:
mov ah,09h
lea dx, Spc
int 21h
lea dx, ErAd31
int 21h
jmp AdAgain
Ad1:
cmp al, 59h or 79h
je AdBs3
AdBs32:
mov ah,09h
lea dx, BsA32 ;Augend
int 21h
mov ah,01h
int 21h ;1st Digit
cmp al,29h
jle ErrAd31
cmp al,33h
jge ErrAd31
sub al,30h
mov Dg11,al
mov ah,01h
int 21h ;2nd Digit
cmp al,29h
jle ErrAd31
cmp al,33h
jge ErrAd31
sub al,30h
mov Dg12,al
mov al, Dg11
mov bl,10h
mul bl
mov NoAd2,al
mov al,Dg12
add NoAd2,al
;Addition
mov bl, NoAd1
add bl, NoAd2
mov cx,bx
add cx,3210h
mov ah,09h
lea dx, SumA
int 21h
mov ah,02h
mov dl,ch
int 21h
mov dl,cl
int 21h
jmp AdAgain
AdAgain:
mov ah,09h
lea dx, Spc
int 21h
lea dx, AgA
int 21h
mov ah,01h
int 21h
cmp al, 59h or 79h
je Ad1
cmp al, 4Eh or 6Eh
je AdOut
AdOut:
mov ah,4Ch ;end here
int 21h
main endp
end main
Needed Output:
Base 03 Addition
Addend[00-22]: 22
Augend[00-22]: 22
Sum is :121
Add Again[Y/N]? : N