0% found this document useful (0 votes)
43 views5 pages

Data

This document contains an assembly language program for a simple calculator. The program allows the user to choose an operation (+, -, *, /) and then enter two numbers to perform the calculation, displaying the result. The program then repeats to allow additional calculations.

Uploaded by

Homi Malik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views5 pages

Data

This document contains an assembly language program for a simple calculator. The program allows the user to choose an operation (+, -, *, /) and then enter two numbers to perform the calculation, displaying the result. The program then repeats to allow additional calculations.

Uploaded by

Homi Malik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

.

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

cmpbutton,'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

You might also like