Sale!

# ECE 154 Lab 3 Integer Sort in RISC-V Assembly solution

Original price was: \$35.00.Current price is: \$28.00.

Category:

5/5 - (1 vote)

## Introduction

In this project you are asked to implement counting sort using RISC-V assembly code. In
particular, consider the following pseudocode.
int keys[numkeys];
int output[numkeys];
countingsort(int *keys, int *output, numkeys, maxnumber) {
int count[maxnumber+1], n;

for (n = 0; n++; n ≤ maxnumber)
count[n] = 0;
for (n = 0; n++; n < numkeys)
count[keys[n]]++;
for (n = 1; n++; n ≤ maxnumber)
count[n] = count[n] + count[n-1];
for (n = 0; n++; n < numkeys) {
output[count[keys[n]]-1] = keys[n];
count[keys[n]]–;
}
}

Here keys is the array of integer items of length numkeys to be sorted with maximum integer
maxnumber, while output is the sorted array.

Your code should be written as a function, which takes pointers to the key and output arrays in
registers \$a0 and \$a1, and numkeys and maxnumber in registers \$a2 and \$a3, correspondingly.
Use skeleton sort.s to write your code. Note that sort.s has an example of an array to sort,
however your code will be checked against other arrays so make sure that it works correctly with
different inputs.

## Lab Report

Your lab report should be a single PDF file, which has all the following items in the following
order and clearly labeled:
1. Please indicate how many hours you spent on this lab. This will be helpful for calibrating
the workload for next time the course is taught.
2. In case you modify the original code (e.g. changing for-loop to do-while loop) show
modified C code in your report that is closest to the implemented assembly

4. If you have any feedback on how we might make the lab even better for next quarter, that’s
always welcome. Please submit it in writing at the end of your lab
* Footnotes:
a. For your code files, please copy and paste your code clearly in a monospace font (ex.,
Courier New).
b. In addition to part 2, provide in the comment the equivalent C code for each added line of
the code in the skeleton.