Write program which will generate Fibonacci sequence numbers

Assignment Help Computer Engineering
Reference no: EM131909196

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.

Reference no: EM131909196

Questions Cloud

How the given article supports the african american odyssey : An example of how this article supports/contradicts The African American Odyssey? Suggested reading to accompany this work (not required, but helpful).
Can atheism be thought of as a religion : Does atheism imply a mythic structure similar to any of the four types discussed there?
Find the greatest height of the rock : Find the greatest height of the rock as measured from the base of the cliff.
What are the consequences to an employer : Does the Immigration Reform and Control Act apply to your current (or most recent) employer? Explain. What are the consequences to an employer if it hires.
Write program which will generate Fibonacci sequence numbers : CS 3280 LAB Assignment. You are to design, write, assemble, and simulate an assembly language program which will generate Fibonacci sequence numbers
Four-year project to improve production efficiency : Purple Haze Machine Shop is considering a four-year project to improve its production efficiency. Calculate the NPV of this project.
Wavelength of a sound wave traveling : The wavelength of a sound wave traveling through the air at 342 m/s is 0.556 m. In hertz, what is the frequency of this wave?
Would you fast track or crash the project : If you were a project manager overseeing the construction of the world's longest suspension bridge and you were under pressure from various stakeholders.
New volume of the nitrogen gas : In cubic centimeters, what will be the new volume of the nitrogen gas? Round your answer to the nearest whole number

Reviews

len1909196

3/21/2018 2:34:55 AM

Detailed Question: I have the code for the Fibonacci sequence but I need it to be implemented into a subroutine and that’s it. It is up to you if you want to use the code I have or if you'd like to make your own code. I have the document as well as the code I have and the template for the new assembly code. Thank you!

len1909196

3/21/2018 2:34:50 AM

Note– only local variables are allowed (local to the main program and the subroutine). Inside the subroutine you can only access local variables and items passed in from the main program!!! You must not access main program variables (such as narr and resarr, or any other variable declared in the main program) from within the subroutine!!! Also, the main program is not allowed to access any local subroutine variables. If you have a question as to whether your program or subroutine violates any of the specific requirements, ask the instructor.

len1909196

3/21/2018 2:34:44 AM

Your program should include a header containing your name, student number, the date you wrote the program, and the lab assignment number. Furthermore, the header should include the purpose of the program and the pseudocode solution of the problem. At least 85% of the instructions should have meaningful comments included - not just what the instruction does; e.g., don't say "increment the register A" which is obvious from the INCA instruction; say something like "increment the loop counter" or whatever this incrementing does in your program. You can ONLY use branch labels related to structured programming, i.e., labels like IF, IF1, THEN, ELSE, ENDIF, WHILE, ENDWHL, DOUNTL, DONE, etc. DO NOT use labels like LOOP, JOE, etc.

len1909196

3/21/2018 2:34:39 AM

YOU ARE TO DO YOUR OWN WORK IN WRITING THIS PROGRAM!!! While you can discuss the problem in general terms with the instructor and fellow students, when you get to the specifics of designing and writing the code, you are to do it yourself. Re-read the section on academic dishonesty in the class syllabus. If there is any question, consult with the instructor. Submission: Electronically submit your .ASM file on Canvas by 1:00pm on the due date. Late submissions or resubmissions (with a 10% grade penalty) are allowed for up to 24 hours (please see the policy on late submission in the course syllabus).

len1909196

3/21/2018 2:34:32 AM

Note: Because of some inherent lack of reliability designed into computers, and Murphy's law by which this design feature manifests itself in the least convenient moment, you should start your work early. Excuses of the form: "my memory stick went bad," "I could not submit my program," "my computer froze up, and I lost all my work;" should be directed to the memory stick manufacturer, Canvas system administrator, and your local Microsoft vendor respectively. Please Note: Submitted programs that won’t assemble, produce assembler or simulator warnings/errors, or are incomplete lose 50 points. Be sure to check/assemble/simulate your code one last time before you submit your assignment.

Write a Review

Computer Engineering Questions & Answers

  Give any relationship that may exist between the principle

You are to explore the principles of data abstraction, inheritance and dynamic binding. Use the Library to get started on finding resources. Take each term and describe it.

  Calculate the sample estimate for the total amount

Sample Evaluation. Marts Inc., a local fund-raising organization, is considering the feasibility of a fund-raising campaign to assist a youth organization.

  Suggest a significant advantage and disadvantage of

suggest a significant advantage and disadvantage of researching health information on the internet. support your

  Write a function declaration and function definition

Write a function declaration and function definition for a function which allows the user to input an argument of type double.

  Wap that receives a series of numbers from the user

Given an integer number, find the sum of all the numbers from 1 to this number.Example: If the number given is 5, the program should display 1+2+3+4+5=15.

  Design a logical and physical topographical layout

Design a logical and physical topographical layout of the planned network through the use of graphical tools in Microsoft Word or Visio, or an open source alternative such as Dia.

  What is the asymptotic accuracy for a one-bit predictor

CS 4290/6290: High-Performance Computer Architecture Midterm Exam. What is the asymptotic accuracy for a one-bit predictor on this branch

  Define the multiple-output qm procedure

Use the multiple-output QM procedure to simplify the functions in problem. Compare the complexity of this implementation to the one in problem.

  Create a GUI that can be used by a community group

Create a graphical user interface that can be used by a community group to enable youths to sign up for different sporting events.

  Determining the vulnerability in product

Specify the ethical considerations included when the security professional contacts the vendor regarding vulnerability in their product.

  Design the logic for a program that allows a user to enter

a. design the logic for a program that allows a user to enter 15 numbers then displays each number and its difference

  How much better can you do with the extra actions

How much better can you do with extra actions? Can you do even better by including a ninth action that causes no movement at all other than that caused by wind?

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd