-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoutput.asm
More file actions
146 lines (146 loc) · 2.15 KB
/
output.asm
File metadata and controls
146 lines (146 loc) · 2.15 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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# Program Generated from AST lab by Max Blennemann from output
.data
varx:
.word 0
varcount:
.word 0
vary:
.word 0
.text
.globl main
main:
li $t0, 2
sw $t0 varx#pop off stack
lw $t0, varx#push on stack
move $t1, $t0
li $t0, 1
move $t2, $t0
add $t0, $t1, $t2 #adding values
sw $t0 vary#pop off stack
lw $t0, varx#push on stack
move $t1, $t0
lw $t0, vary#push on stack
move $t2, $t0
add $t0, $t1, $t2 #adding values
sw $t0 varx#pop off stack
li $v0, 1
lw $t0, varx#push on stack
move $t1, $t0
lw $t0, vary#push on stack
move $t2, $t0
mult $t1, $t2
mflo $t0
move $a0, $t0
syscall
li $a0 '\n'
li $v0 11
syscall
lw $t0, varx#push on stack
move $t1, $t0
lw $t0, vary#push on stack
move $t2, $t0
li $t0, 1
bgt $t1, $t2, label0
li $t0, 0
label0:
beq $t0, $0, label1
li $v0, 1
lw $t0, varx#push on stack
move $a0, $t0
syscall
li $a0 '\n'
li $v0 11
syscall
li $v0, 1
lw $t0, vary#push on stack
move $a0, $t0
syscall
li $a0 '\n'
li $v0 11
syscall
label1:
li $t0, 1
beq $t0, $0, label2
li $t0, 14
move $t1, $t0
li $t0, 14
move $t2, $t0
li $t0, 1
bne $t1, $t2, label3
li $t0, 0
label3:
beq $t0, $0, label4
li $v0, 1
li $t0, 3
move $a0, $t0
syscall
li $a0 '\n'
li $v0 11
syscall
label4:
li $t0, 14
move $t1, $t0
li $t0, 14
move $t2, $t0
li $t0, 1
blt $t1, $t2, label5
beq $t1, $t2, label5
li $t0, 0
label5:
beq $t0, $0, label6
li $v0, 1
li $t0, 4
move $a0, $t0
syscall
li $a0 '\n'
li $v0 11
syscall
label6:
label2:
li $t0, 15
move $t1, $t0
li $t0, 14
move $t2, $t0
li $t0, 1
bgt $t1, $t2, label7
li $t0, 0
label7:
beq $t0, $0, label8
li $v0, 1
li $t0, 5
move $a0, $t0
syscall
li $a0 '\n'
li $v0 11
syscall
label8:
li $t0, 1
sw $t0 varcount#pop off stack
label10:
lw $t0, varcount#push on stack
move $t1, $t0
li $t0, 15
move $t2, $t0
li $t0, 1
blt $t1, $t2, label11
beq $t1, $t2, label11
li $t0, 0
label11:
beq $t0, $0, label9
li $v0, 1
lw $t0, varcount#push on stack
move $a0, $t0
syscall
li $a0 '\n'
li $v0 11
syscall
lw $t0, varcount#push on stack
move $t1, $t0
li $t0, 1
move $t2, $t0
add $t0, $t1, $t2 #adding values
sw $t0 varcount#pop off stack
j label10
label9:
li $v0, 10
syscall