Simple Calculator Program in Assembly Language
Read Also:
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
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
Post a Comment