Simple Calculator Program in Assembly Language

This Program have Option of addition, subtraction, multiplication, division
it will get values from user and then show the result using cmd
-----------------------------

include irvine32.inc

.data
line   byte    "  This is a Simple Calculator in Assembly  ",0,13h,10h
line1  byte    "  Chosee Operation:  '+'   '-'  '/'  '*'   ",0,13h,10h
line11       byte    "   Addition:      '+'        ",0,13h,10h
line12       byte    "  Subtraction:    '-'  ",0,13h,10h
line13       byte    "  Multiplication: '*'  ",0,13h,10h
line14       byte    "  Division:       '/'  ",0,13h,10h
line15       byte    "  Repete:         'R'  ",0,13h,10h
line16       byte    "  Exit:           'E'  ",0,13h,10h

line2  byte    "  Addition:         ",0,13h,10h
line3  byte    "  Subtraction:      ",0,13h,10h
line4  byte    "  Multiplication:   ",0,13h,10h
line5  byte    "  Division:         ",0,13h,10h

msg   byte   " Enter First Integer:  ",0,13h,10h
msg1  byte   " Enter second Integer: ",0,13h,10h

put  byte   " Result is Equal to = ",0
put1  byte   " First No  is:  ",0
put2 byte   " Second No is:  ",0

num1 word ?
num2 word ?

button byte ?

.code
main PROC
call clrscr
mov edx,offset line
call writestring
call crlf

start:
call crlf
mov edx,offset line1
call writestring
call crlf
mov edx,offset line11
call writestring
call crlf
mov edx,offset line12
call writestring
call crlf
mov edx,offset line13
call writestring
call crlf
mov edx,offset line14
call writestring
call crlf
mov edx,offset line15
call writestring
call crlf
mov edx,offset line16
call writestring
call crlf
call crlf

mov edx,offset button
call readchar
mov button,al

cmp button,'+'
JE addition

cmp button,'-'
JE subtraction

cmp button,'*'
JE multiplication

cmp button,'/'
JE division

cmp button,'r'
JE start
JNE stop

addition:
mov edx,offset line2
call writestring
call crlf
mov edx,offset msg ;Read first no
call writestring
call readint
mov num1,ax

mov edx,offset msg1 ;read 2nd no
call writestring
call readint
mov num2,ax

mov edx,offset put1 ;display both no
call writestring
mov ax,num1
call writeint
call crlf
mov edx,offset put2
call writestring
mov ax,num2
call writeint
call crlf
call crlf
mov edx,offset put
call writestring
mov ax,num1
add ax,num2
call writeint
call crlf

Jmp start

subtraction:
mov edx,offset line3
call writestring
call crlf
mov edx,offset msg ;Read first no
call writestring
call readint
mov num1,ax

mov edx,offset msg1 ;read 2nd no
call writestring
call readint
mov num2,ax

mov edx,offset put1 ;display both no
call writestring
mov ax,num1
call writeint
call crlf
mov edx,offset put2
call writestring
mov ax,num2
call writeint
call crlf
call crlf
mov edx,offset put
call writestring
mov ax,num2
sub ax,num1
call writeint
call crlf

JMP start

multiplication:
mov edx,offset line4
call writestring
call crlf
mov edx,offset msg ;Read first no
call writestring
call readint
mov num1,ax

mov edx,offset msg1 ;read 2nd no
call writestring
call readint
mov num2,ax

mov edx,offset put1 ;display both no
call writestring
mov ax,num1
call writeint
call crlf
mov edx,offset put2
call writestring
mov ax,num2
call writeint
call crlf
call crlf
mov edx,offset put
call writestring
mov ax,num1
mov bx,num2
mul bx
call writeint
call crlf

JMP start

division:
mov edx,offset line5
call writestring
call crlf
mov edx,offset msg ;Read first no
call writestring
call readint
mov num1,ax

mov edx,offset msg1 ;read 2nd no
call writestring
call readint
mov num2,ax

mov edx,offset put1 ;display both no
call writestring
mov ax,num1
call writeint
call crlf
mov edx,offset put2
call writestring
mov ax,num2
call writeint
call crlf
call crlf
mov edx,offset put
call writestring
mov ax,num1
mov bx,num2
mov dx,0
div bx
call writeint
call crlf

JMP start
stop:
exit
main endp
end main





















0 comments:

Post a Comment

My Instagram