Answer:
Convert "merge" in Assignment 5 into a subroutine. Write a "main" program to perform mergesorting of a list of integers by calling "merge" repeatedly. For example, if the sorting program takes (6, 5, 9, 1, 7, 0, -3, 2) as input, it will produce a sorted list (-3, 0, 1, 2, 4, 6, 7, 9).
The original unsorted list of integers should be received from the keyboard input. Your program should first ask for user to input the number of integers in the original list, and then ask for inputting all the integers. The total number of integers to be sorted by this program should be a power of 2. This means, the program should work with a list of 2, 4, 8, 16, or 32 (...) integers (but your program needs only to handle up to 32 integers).
The final sorted list (in increasing order) should be stored in the data area, that starts with the label "list:". The sorted list should also be displayed on the screen (console).
You should not do this part by implementing a different sorting algorithm (e.g., quick sort). You will receive 0% if you do not make use of "merge", or if your sorted list is in decreasing order.
[HINTS]: The bottom-up approach of implementation without using recursion is to initially sort the smallest possible sub-lists, and then merge every two neighboring sublists, until the whole list is merged and sorted. This non-recursive approach is more efficient in general, and is thus required for this assignment. [An alternative is to sort the list by dividing it into two sub-lists, recursively sorting the sub-lists, and then joining the sub-lists together to give the sorted list. But this recursive approach is not required in this assignment.]
B. Machine Code => MIPS
Step-by-step explanation: