Ask Question, Ask an Expert

+61-413 786 465

info@mywordsolution.com

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

How do you apply the five components of the information

How do you apply the five components of the information systems to an information systems application like "online bill pay" system offered by many banks.

Clientserver model please respond to the followingimagine

"Client/Server Model" Please respond to the following: Imagine that you are a lead developer for social media company and that one of your responsibilities is to help mentor junior developers. The junior developer that y ...

A single precision ieee 754 number is stored in memory at

A single precision IEEE 754 number is stored in memory at address X. Write a sequence of ARM instructions to multiply the number at X by 16 and store the result back at X. You must accomplish this without using any float ...

Joe works at a grocery store he found that weights of

Joe works at a grocery store. He found that weights of potatoes in sacks are normally distributed with mean = 150 grams and standard deviation of 2 grams. When he randomly chooses four potatoes and measures the weight, w ...

Suppose pointers are 4 bytes long and keys are 12 bytes

Suppose pointers are 4 bytes long, and keys are 12 bytes long. How many keys and pointers will a block of 16,384 bytes have?

Discuss how today the internet has brought millions of

Discuss how today, the internet has brought millions of unsecured computer networks into communication with each other.

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 ...

1 write code in the method linearsearch in

1. Write code in the method linearSearch() in "SearchMethods"class which finds the element in an array using linear search approach and returns its index to the calling main method, otherwise it returns -1. 2. Write code ...

Given a list of numbers l a value x is said to be a

Given a list of numbers L, a value x is said to be a majority value if the value of over half the elements in L is x; in other words, if L has n elements and nx is the number of elements in L with value x, then x is a ma ...

Question 1 the facilities coordinator is a critical role

Question: 1. The facilities coordinator is a critical role. Put yourself in the position of the facilities coordinator. 2. Determine and list the qualities you have that would make you an excellent candidate for this pos ...

  • 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