-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmyDivision.asm
More file actions
140 lines (103 loc) · 3.46 KB
/
myDivision.asm
File metadata and controls
140 lines (103 loc) · 3.46 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
#Integer Division using 'div' keyword
.data
newLine: .asciiz "\n"
problem2: .asciiz "30 / 5 = "
problem3: .asciiz "60 / 5 / 3 = "
problem4: .asciiz "100 / 5 / 4 / 2 = "
problem5: .asciiz "96 / 2 / 3 / 4 / 2 = "
.text
#DIVIDING 2 NUMBERS 30/5-----------------------------
#displaying problem
li $v0, 4 #system signal for string printing
la $a0, problem2
syscall
#storing 2 values into registers to divide
#'declaring' a variable
addi $t0, $zero, 30 #30+0 stored in t0
#'declaring' a variable
addi $t1, $zero, 5 #5+0 stored in t1
#dividing the variables
div $s0, $t0, $t1 #30/5 stored in s0
#displaying result
li $v0, 1 #system signal for printing int
add $a0, $zero, $s0 #move result to argument
#bc only args can be printed
syscall #execute
#moving cursor to new line
li $v0, 4 #system signal for string printing
la $a0, newLine
syscall
#DIVIDING 3 NUMBERS 60/5/3---------------------------
#displaying problem
li $v0, 4 #system signal for string printing
la $a0, problem3
syscall
#storing 3 values into registers to divide
#'declaring' a variable
addi $t0, $zero, 60 #60+0 stored in t0
#'declaring' a variable
addi $t1, $zero, 5 #5+0 stored in t1
#'declaring' a variable
addi $t2, $zero, 3 #3+0 stored in t2
#dividing first 2 integers
div $s0, $t0, $t1 #60/5 stored in s0
#dividing with last integer
div $s1, $s0, $t2 #12/3 stored in s1
#displaying result
li $v0, 1 #system signal for integer printing
add $a0, $zero, $s1
syscall #execute
#moving cursor to new line
li $v0, 4 #system signal for string printing
la $a0, newLine
syscall #execute
#DIVIDING 4 NUMBERS 100/5/4/2---------------------
#displaying problem
li $v0, 4 #system signal for string printing
la $a0, problem4
syscall #execute
#storing 4 values into registers to divide
#'declaring' the 4 variables
addi $t0, $zero, 100 #100+0 stored in t0
addi $t1, $zero, 5 #5+0 stored in t1
addi $t2, $zero, 4 #4+0 stored in t2
addi $t3, $zero, 2 #2+0 stored in t3
#dividing t0/t1 stored in s0
div $s0, $t0, $t1
#dividing s0/t2 stored in s1
div $s1, $s0, $t2
#dividing s1/t3 stored in s2
div $s2, $s1, $t3
#system rounds down to nearest whole number
#displaying result
li $v0, 1 #system signal for int printing
add $a0, $zero, $s2 #s2+0 stored in $a0
syscall #execute
#moving cursor to new line
li $v0, 4 #system signal for string printing
la $a0, newLine
syscall #execute
#DIVIDING 5 NUMBERS 96/2/3/4/2--------------------
#displaying problem
li $v0, 4 #system signal for string printing
la $a0, problem5
syscall #execute
#storing 5 variables into registers to divide
#'declaring' the 5 variables
addi $t0, $zero, 96 #96+0 stored in t0
addi $t1, $zero, 2 #2+0 stored in t1
addi $t2, $zero, 3 #3+0 stored in t2
addi $t3, $zero, 4 #4+0 stored in t3
addi $t4, $zero, 2 #2=0 stored in t4
#dividing t0/t1 stored in s0
div $s0, $t0, $t1
#dividing s0/t2 stored in s1
div $s1, $s0, $t2
#dividing s1/t3 stored in s2
div $s2, $s1, $t3
#dividing s2/t4 stored in s3
div $s3, $s2, $t4
#displaying result
li $v0, 1 #system signal for int printing
add $a0, $zero, $s3
syscall