How do a bubble sort in MIPS?
The sort should be done "in place" (i.e., in the same array that it is stored in). The sorting routine must be implemented as a procedure with the following signature:
void sort(int n, int values[]);
Please follow the guidelines below carefully.
FILENAME
Your code must be implemented in a file called ec2.asm
INPUT
At the beginning of your MARS file you must use the directive:
.include "ec2_data.asm"
This will include the contents of the named file within your program. The file must be in the same directory as ec2.asm for it to work properly.
The file ec2_data.asm will put some values in the "data segment". The first value is the number of values to sort (n), the remaining n word values are the data to sort. Following the example below, the values will be stored in memory as word values starting at address0x10010000.
.data
.word 3
.word 40
.word 30
.word 70
.text
When grading this assignment, different data files will be used to ensure the sorting works correctly.
OUTPUT
After sorting the values in the data segment, your program must must loop through and output the listed values using the MIDI out synchronous syscall in MARS. The value is the "pitch" parameter to the syscall. The other parameters should be as follows:
Duration: 250 ms
Instrument: up to you (see the MARS help page for syscalls)
Volume: 64