Assembly language code

profileyxpan1996
lab5.pdf

CPSC 2382: Assembly Language Lab #5 Fall 2016

Due date: 11/22/2016

Fibonacci numbers are integers 0, 1, 1, 2, 3, 5, 8, 13, 21 … If function fib(n) represents the n

th Fibonacci number, we have fib(n) = fib(n-1) + fib(n-2) for n > 2, and fib(1) = 0,

fib(2) = 1. Therefore, we can implement the recursive function fib in c++ as follows:

int fib(int n){ if ((n == 1) || (n == 2)) return n - 1; else return fib(n-1) + fib(n-2); }

In this lab, we will write an assembly program that computes and displays the n

th

Fibonacci number for any positive integer n that the user entered. To implement this program, we need to

1) Implement the above fib function in assembly, i.e., translate fib into an equivalent assembly procedure;

2) Implement your main procedure which lets the user enter the number n, calls the procedure fib to get the n

th Fibonacci number, and displays this Fibonacci

number. Please avoid using directives such as IF-ELSE in your assembly code.

Requirements:

1. Submit your source code (.asm file) which should run correctly.

2. Necessary comments are needed in your code.

3. Turn in a lab report. The lab report should include three parts: Introduction,

Implementation, and Summary. The introduction briefly describes the purpose

of this lab. The implementation part gives detailed description on how you

implemented the task, including the runtime screen shots, as well as necessary

discussions. The summary concludes the lab.

Please submit through blackboard system!