-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcalculator.asm
More file actions
121 lines (90 loc) · 1.33 KB
/
Copy pathcalculator.asm
File metadata and controls
121 lines (90 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# calculator
# Written by Muhammad Ilyas
# CS3A
.data
string: .asciiz"Enter var1:\n"
string1: .asciiz"Enter var2:\n"
string2: .asciiz"Select Case: \n1. Addition\n2. Subtraction\n3. Multiplication \n4. Division\n5. Quit\n\n\n"
result: .asciiz"\nAdd = "
result1: .asciiz"\nSub = "
result2: .asciiz"\nMul = "
result3: .asciiz"\nDiv = "
exit: .asciiz"\nExit \n"
.text
.globl main
main:
########################### Input ###########################
#var1
li $v0,4
la $a0,string
syscall
li $v0,7
syscall
mov.d $f4,$f0
#var2
li $v0,4
la $a0,string
syscall
li $v0,7
syscall
mov.d $f6,$f0
########################### Selection Case ###########################
li $t1,1
li $t2,2
li $t3,3
li $t4,4
li $t5,5
SelecCase:
li $v0,4
la $a0,string2
syscall
li $v0,5
syscall
move $t0,$v0
beq $t0,$t1,addition
beq $t0,$t2,subtraction
beq $t0,$t3,multiplication
beq $t0,$t4,divide
beq $t0,$t5,Exit
addition:
add.d $f8,$f4,$f6
li $v0,4
la $a0,result
syscall
li $v0,3
mov.d $f12,$f8
syscall
j Exit
subtraction:
sub.d $f8,$f4,$f6
li $v0,4
la $a0,result1
syscall
li $v0,3
mov.d $f12,$f8
syscall
j Exit
multiplication:
mul.d $f8,$f4,$f6
li $v0,4
la $a0,result2
syscall
li $v0,3
mov.d $f12,$f8
syscall
j Exit
divide:
div.d $f8,$f4,$f6
li $v0,4
la $a0,result3
syscall
li $v0,3
mov.d $f12,$f8
syscall
j Exit
Exit:
li $v0,4
la $a0,exit
syscall
li $v0,10
syscall