Question: Develop a complete program in Nios II assembly language to perform the computation specified by the pseudocode given below. /* globals: list, n, above_upper, below_lower,

Develop a complete program in Nios II assembly language to perform the computation specified by the pseudocode given below.

/* globals: list, n, above_upper, below_lower, in_between */

main:: above_upper = CountAboveUpperLimit(list, n, 7) below_lower = CountBelowLowerLimit(list, n, 2) in_between = n - above_upper - below_lower

CountAboveUpperLimit(list, n, upper):: count = 0 for i = 0 to n-1 do count = count + GreaterThan(list[i], upper) end for return count

/* note different arg. order in subroutine call */ CountBelowLowerLimit(list, n, lower):: count = 0 for i = 0 to n-1 do count = count + GreaterThan(lower, list[i]) end for return count

GreaterThan(first, second) if (first > second) then ret_val = 1 else ret_val = 0 end if return ret_val

Note that in this program, the global variables are only accessed directly by name in the main routine.

All other symbols appearing in the body of the subroutines represent variables local to each subroutine, or they represent incoming arguments to each subroutine which also means they are local.

Follow the required register-usage convention for arguments into subroutines (r2, r3, ...) and for a return value (r2). As necessary, use additional registers to hold information so that arguments can be passed in the required registers.

Follow the guidelines to systematically generate assembly-language code for subroutines, loops, and conditional statements. Make labels unique for loops and conditional statements with different prefixes or different numeric suffixes.

Prepare modular code by saving/restoring registers in the appropriate manner.

For the data, use a list consisting of the following items: { 9, 5, 4, 8, 1 }.

Use the Web-based simulator to assemble and debug your program for correct functionality. To ensure that you maintain a local up-to-date copy of your code, use a separate text editor and bring code into the Web-based simulator. If you rely on the editor within the Web-based simulator, save your code often.

When complete and when verification has been achieved successfully, copy/paste the syntax-error-free code for the entire program into the space below.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!