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
Post a Comment