Write a MIPS assembly program that asks the user for an integer value five times
ID: 3878998 • Letter: W
Question
Write a MIPS assembly program that asks the user for an integer value five times saving each value to a separate register. Then using those five registers, your program should be able to correctly calculate the average of those values using integer division. A run of the program should look like the following (user input is shown in bold):
Please enter an integer: 5
Please enter another integer: 3
Please enter another integer: 5
Please enter another integer: 9
Please enter another integer: 10
The average of your numbers is: 6
Use the SPIM emulator for MIPS processors
Explanation / Answer
Code:
.data
#declare variables
str1: .asciiz "Please enter an integer: "
str2: .asciiz "Please enter another integer: "
str3: .asciiz "The average of your numbers is: "
.text
.globl main
main:
#initialise sum to 0
li $t0, 0
#prompt user for input
li $v0, 4
la $a0, str1
syscall
#read input
li $v0, 5
syscall
#add it to sum
add $t0, $t0, $v0
#loop for another 4 integers
li $t1, 4
loop:
#prompt user for input
li $v0, 4
la $a0, str2
syscall
#read input
li $v0, 5
syscall
#add to sum
add $t0, $t0, $v0
#decrement counter
sub $t1, $t1, 1
#exit when 0
bnez $t1, loop
#divide sum by 5 for average
div $t0, $t0, 5
#print average to user
li $v0, 4
la $a0, str3
syscall
li $v0,1
move $a0, $t0
syscall
#exit
li $v0,10
syscall
Output:
Please enter an integer: 1
Please enter another integer: 2
Please enter another integer: 3
Please enter another integer: 4
Please enter another integer: 5
The average of your numbers is: 3
-- program is finished running --
Hope this helps. Do Upvote! :)
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.