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!