Question: Need help modifying my Mips code, my code below stores an array and then displays the reverse order of it, I now need a modified
Need help modifying my Mips code, my code below stores an array and then displays the reverse order of it, I now need a modified code to display the median of the array. Please help, instructions are below must follow instructions correctly, thanks in advance.
// Instructions
Write a program that prompt the user to input n numbers (0 How many number you like to enter: 9 =============================== Enter number 1: 10 Enter number 2: 20 Enter number 3: 30 Enter number 4: 40 Enter number 5: 50 Enter number 6: 60 Enter number 7: 70 Enter number 8: 80 Enter number 9: 90 =============================== The median is: 50 =============================== Another example would be: How many number you like to enter: 6 =============================== Enter number 1: 11 Enter number 2: 15 Enter number 3: 16 Enter number 4: 18 Enter number 5: 212 Enter number 6: 220 =============================== The median is: 17 =============================== Another example would be: How many number you like to enter: 6 =============================== Enter number 1: 11 Enter number 2: 15 Enter number 3: 18 Enter number 5: 23 Enter number 6: 220 Enter number 7: 221 =============================== The median is: 20 =============================== In fact, the middle is 20.5 in the last case but since we only deal with integer we get the integer part which is 20 Don't modify must leave as 20 // Code .data myArray: .word 0,0,0,0,0,0,0,0,0,0 size: .word 0 prompt: .asciiz "Enter number of elements: " message: .asciiz "Enter number " error: .asciiz "Error Invalid number, Please try again!! " reverse: .asciiz "The content of array in reverse order is: " .text main: li $v0, 4 la $a0, prompt syscall li $v0, 5 syscall blt $v0,1,notInRange bgt $v0,10,notInRange add $t0, $v0,$0 la $s1, size sw $t0, 0($s1) la $s0, myArray li $v0, 4 #printing str1: "How many numbers would you like to save" la $a0, message syscall loop: beq $t0, $0, done li $v0, 5 syscall sw $v0, 0($s0) addi $t0, $t0, -1 addi $s0, $s0, 4 j loop done: #la $s0,myArray la $a0, reverse li $v0, 4 syscall lw $t0,0($s1) outloop: beq $t0, $0, exit addi $s0, $s0, -4 li $v0, 1 lw $a0, 0($s0) syscall addi $t0, $t0, -1 #addi $s0, $s0, 4 j outloop exit: li $v0, 10 syscall notInRange: li $v0,4 la $a0,error #it will print prompt syscall j main
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
