Mini Calculator in Assembly

Simple mini calculator program in Assembly


; You may customize this and other start-up templates; 
; The location of this template is c:\emu8086\inc\0_com_template.txt

org 100h

.data 


n1 db ?

n2 db ?  

sum db ?

diff db ?

mol db ?

choice db ? 

msg db 0Ah,0Dh,"Enter first num:$"

msg1 db 0Ah,0Dh,"Enter the second num:$"  

msg2 db 0Ah,0Dh,0Ah,0Dh,"1.Add$"

msg3 db 0Ah,0Dh,"2.Sub$"

msg4 db 0Ah,0Dh,"3.Mul$"

msg5 db 0Ah,0Dh,"4.Exit$"

msg6 db 0Ah,0Dh,"Enter your choice:$" 

msg7 db 0Ah,0Dh,"The addition is:$"

msg8 db 0Ah,0Dh,"The subtraction is:$" 

msg9 db 0Ah,0Dh,"The Multiplication is is:$" 

msg10 db 0Ah,0Dh,"***** Mini Calculator in assembly ****$"



.code  


while:  


lea dx,msg10

mov ah,9

int 21h 

lea dx,msg2

mov ah,9

int 21h 


lea dx,msg3

mov ah,9

int 21h 



lea dx,msg4

mov ah,9

int 21h 



lea dx,msg5

mov ah,9

int 21h 



lea dx,msg6

mov ah,9

int 21h   


mov ah,1

int 21h  

sub al,30h


cmp al,1

je summ 


cmp al,2

je difff


cmp al,3

je multiply


cmp al,4

je exit  



summ:

xor ax,ax

lea dx,msg

mov ah,9

int 21h 


mov ah,1

int 21h  

mov n1,al


lea dx,msg1

mov ah,9

int 21h
             
mov ah,1

int 21h

add al,n1

sub al,30h

mov sum,al


lea dx,msg7

mov ah,9

int 21h 

 

mov dl,sum

mov ah,2

int 21h  

jmp while   

difff:  

xor ax,ax

lea dx,msg

mov ah,9

int 21h 


mov ah,1

int 21h 


sub al,30h  

mov n1,al


lea dx,msg1

mov ah,9

int 21h


             
mov ah,1

int 21h

sub al,30h 


sub n1,al

mov al,n1

add al,30h 

mov diff,al


lea dx,msg8

mov ah,9

int 21h 

 

mov dl,diff

mov ah,2

int 21h  

jmp while  



multiply:    


xor ax,ax 

xor bx,bx 


lea dx,msg

mov ah,9

int 21h 


mov ah,1

int 21h


sub al,30h  

mov n1,al


lea dx,msg1

mov ah,9

int 21h  


             
mov ah,1

int 21h

sub al,30h

mov n2,al


mov al,n1

mov bl,n2

mul bl

add al,30h

mov mol,al


lea dx,msg9

mov ah,9

int 21h 

 

mov dl,mol

mov ah,2

int 21h  

jmp while




exit:   




mov ah,4ch

int 21h





ret




Comments