Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The following integers are found in an array X in respective order: 8 15 32 27 1

ID: 3648745 • Letter: T

Question

The following integers are found in an array X in respective order:

8
15
32
27
13
10
7
0

Your web site has a link for eduMIPS, a MIPS simulator, along with code that sums the values in the array. Download the eduMIPS simulator, install the simulator, load the code and run it. Give screenshots of the before and after as proof of execution, including screen shots of the assembly language and the code.

Turn In:

Screen shots of the program, the assemble view in the simulator and the results of the run.


Write a MIPS program to sort the above array and demonstrate its execution on the MIPS simulator.


-------------------
I found the code of this question but I need a step of how to load the code and run the simulation? Can I use Visual Studio to create the .asm file?

Explanation / Answer

please rate - thanks

when you same the file, using notepad, and do the save, be sure to type in

"sort.asm"        must put the quotes around it

program to sort the numbers

sample run

.data
vals: .space 4000
message1: .asciiz "Enter an integer: 9999 to exit "
message2: .asciiz "The array contains the following: "
next_line: .asciiz " "

.text
.globl main
main:

la $a1, vals # $a1 is the base address of the array
li $a2, 9 # $a2 = 9;

li $t0, 0 # i = 0;
li $t1,9999
loop:
# cout << message1 << endl;
la $a0, message1
li $v0, 4
syscall
li $v0, 5
syscall
beq $v0,$t1,sort
addi $t0,$t0,4
sw $v0, ($a1)
addi $a1, $a1, 4 # move the array over by 1 element
j loop

sort:

    la   $t4, vals         #t0 is number up to   outter loop
         la   $t1, vals          #t1 is number comparing to   inner loop
         addi $t1,$t1,4
        la $t8,vals
        add $t8,$t0,$t8
         la $t9,vals
        add $t9,$t0,$t9    
        addi $t9,$t9,-4
loops:    lw   $t2,($t4)           #get number 1   outter loop
         lw   $t3,($t1)           #get number 2   inner loop
         blt $t2,$t3,next        #don't need to swap
         sw $t3,($t4)           #swap
         sw   $t2,($t1)
next:    addi $t1,$t1,4
         blt $t1,$t8,loops       #inner loop done?
         addi $t4,$t4,4             #yes-increment outter loop
         move $t1,$t4
         addi $t1,$t1,4
         blt $t4,$t9,loops       #outter loop done?

printArray:
la $a1,vals

la $a0, message2
li $v0, 4
syscall
loop1:
blez $t0, done
li $v0, 1
lw $a0, 0($a1)
syscall
la $a0, next_line
li $v0, 4
syscall
addi $a1, $a1, 4
addi $t0, $t0, -4
j loop1
done:
j done