Ask Computer Engineering Expert

LAB Assignment

You are to design, write, assemble, and simulate an assembly language program which will generate Fibonacci sequence numbers. Giving is a table NARR of byte-long numbers (with a $00 sentinel). Each element in the table corresponds to the sequence number of a Fibonacci number to be generated. The actual calculation of the corresponding 4-byte Fibonacci numbers has to be implemented in a subroutine. The 4-byte Fibonacci numbers have to be passed back to the main program, which stores them in the RESARR array.

PLEASE NOTE:

1. Your program should work for any N value, not just the ones given in the table.

2. Do NOT use the X or Y registers for storing or manipulating DATA. Only use the X and Y registers for storing/manipulating ADDRESSES.

3. All multi-byte data items are in Big Endian format (including all program variables)

4. Your program is NOT allowed to change the numbers stored in the NARR table.

5. You have to use the program skeleton provided for Lab4. Do not change the data section or you will lose points! This means: do not change the 'ORG $B000' and 'ORG $B010' statements or the variable names 'NARR' and 'RESARR'. Do NOT change the values assigned to the NARR table. If you need to define additional variables, please add them in the appropriate places.

6. You are allowed to declare static variables in your subroutine (through RMB).

7. Your subroutine does not have to be transparent. This means that your subroutine does not have to restore the original content of registers (the content of registers when entering the subroutine) before exiting the subroutine.

8. Your subroutine should only have one exit point. This means that only a single RTS instruction at the end of the subroutine is allowed.

9. Initialize any additional variables that your program (main program and subroutine) needs within the program, NOT with a FCB or FDB in the data section.

10. You must terminate your main program correctly using an infinite loop structure.

11. You do not have to optimize your algorithm or your assembly program for speed.

12. You have to provide a pseudo-code solution for your main program AND your subroutine. In your pseudo code, do NOT use a for loop, but either a while or a do-until construct to implement a loop. Also, do NOT use any "goto", "break", or "exit" statements in your pseudocode.

13. The structure of your assembly program should match the structure of your pseudo code 1-to-1.

14. You are allowed to use parts of your LAB3 or parts of the official LAB3 solution.

15. The main program should be a WHILE structure which goes through the NARR table and sends an N value to the subroutine during each iteration. The while structure will also check for the Sentinel (which is the $00 at the end of the table) at each iteration. The Sentinel is NOT one of the data items and it should NOT be processed by the subroutine. The main program must end the while loop when the $00 is encountered. For each subroutine call, the subroutine will send back a 4-byte result that has to be stored consecutively in the RESARR array in Big-Endian format.

  • You are not allowed to just manually count the number of elements in the table and set up a fixed number in memory as a count variable.
  • Your program should still work if the arrays (NARR and RESARR) are moved to different places in memory (do not use any fixed offsets).
  • You don't have to copy the sentinel to the end of the RESARR array.
  • Your program should work for any number of elements in the table. Thus, there could be more than 255 elements in the table. Using the B-register as an offset and the ABX/ABY instructions to point into the array will therefore not work.

16. For each iteration, the main program should take one number from the NARR table and pass it to the subroutine in a REGISTER (call-by-value in register). The subroutine performs the calculation and produces the corresponding 4-byte Fibonacci number. The resulting 4-byte number must be passed back to the main program OVER THE STACK (call-by-value over the stack) in Big Endian format. The main program then retrieves the 4 bytes from the stack and stores them in the RESARR array in Big Endian format. Thus, if the NARR table has 8 data items (excluding the sentinel), the RESARR array should consist of 32 bytes (8 4-byte Fibonacci numbers) after program execution.

  • ALL of the number processing must be done inside a single subroutine.
  • Make sure that your program will not generate a stack underflow or overflow.

17. You do not have to check for overflow when calculating the Fibonacci numbers.

18. Any assembler or simulator error/warning messages appearing when assembling/simulating your submitted program will result in 50 points lost.

Computer Engineering, Engineering

  • Category:- Computer Engineering
  • Reference No.:- M92747864

Have any Question?


Related Questions in Computer Engineering

Does bmw have a guided missile corporate culture and

Does BMW have a guided missile corporate culture, and incubator corporate culture, a family corporate culture, or an Eiffel tower corporate culture?

Rebecca borrows 10000 at 18 compounded annually she pays

Rebecca borrows $10,000 at 18% compounded annually. She pays off the loan over a 5-year period with annual payments, starting at year 1. Each successive payment is $700 greater than the previous payment. (a) How much was ...

Jeff decides to start saving some money from this upcoming

Jeff decides to start saving some money from this upcoming month onwards. He decides to save only $500 at first, but each month he will increase the amount invested by $100. He will do it for 60 months (including the fir ...

Suppose you make 30 annual investments in a fund that pays

Suppose you make 30 annual investments in a fund that pays 6% compounded annually. If your first deposit is $7,500 and each successive deposit is 6% greater than the preceding deposit, how much will be in the fund immedi ...

Question -under what circumstances is it ethical if ever to

Question :- Under what circumstances is it ethical, if ever, to use consumer information in marketing research? Explain why you consider it ethical or unethical.

What are the differences between four types of economics

What are the differences between four types of economics evaluations and their differences with other two (budget impact analysis (BIA) and cost of illness (COI) studies)?

What type of economic system does norway have explain some

What type of economic system does Norway have? Explain some of the benefits of this system to the country and some of the drawbacks,

Among the who imf and wto which of these governmental

Among the WHO, IMF, and WTO, which of these governmental institutions do you feel has most profoundly shaped healthcare outcomes in low-income countries and why? Please support your reasons with examples and research/doc ...

A real estate developer will build two different types of

A real estate developer will build two different types of apartments in a residential area: one- bedroom apartments and two-bedroom apartments. In addition, the developer will build either a swimming pool or a tennis cou ...

Question what some of the reasons that evolutionary models

Question : What some of the reasons that evolutionary models are considered by many to be the best approach to software development. The response must be typed, single spaced, must be in times new roman font (size 12) an ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As