-
Notifications
You must be signed in to change notification settings - Fork 11
/
mips-12-calculator.asm
132 lines (91 loc) · 1.4 KB
/
mips-12-calculator.asm
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
122
123
124
125
126
127
128
129
130
131
132
.data
string1: .asciiz "For add press 1, For sub press 2, For div press 3, For mult press 4,For remaminder press 5: "
string2: .asciiz "Enter a number: "
endLine: .asciiz "\n"
addition: .asciiz "Addition : "
subtraction: .asciiz "subtraction : "
dividition: .asciiz "dividition : "
multplication: .asciiz "multplication : "
remainder: .asciiz "Remainder is: "
.text
main:
li $v0,4
la $a0,string2
syscall
li $v0,5
syscall
move $t0,$v0
li $v0,4
la $a0,string2
syscall
li $v0,5
syscall
move $t1,$v0
li $v0,4
la $a0,endLine
syscall
li $v0,4
la $a0,string1
syscall
li $v0,4
la $a0,endLine
syscall
li $v0,5
syscall
move $t2,$v0
beq $t2,1,Addition
beq $t2,2,Subtraction
beq $t2,3,Dividition
beq $t2,4,Multplication
beq $t2,5,Remainder
Addition:
li $v0,4
la $a0,addition
syscall
li $v0,4
la $a0,endLine
syscall
add $t3,$t0,$t1
move $a0,$t3
li $v0,1
syscall
j Exit
Subtraction:
li $v0,4
la $a0,subtraction
syscall
sub $t3,$t0,$t1
move $a0,$t3
li $v0,1
syscall
j Exit
Dividition:
li $v0,4
la $a0,dividition
syscall
div $t0,$t1
mflo $a0
li $v0,1
syscall
j Exit
Multplication:
li $v0,4
la $a0,multplication
syscall
mul $t3,$t0,$t1
move $a0,$t3
li $v0,1
syscall
j Exit
Remainder:
li $v0,4
la $a0,remainder
syscall
rem $t3,$t0,$t1
move $a0,$t3
li $v0,1
syscall
j Exit
Exit:
li $v0,10
syscall