3.3 MIC-1 Fibonacci

In MIC1 assembly, write a program that computes the first 25 Fibonacci numbers (modulo 2^15) and stores them into memory. You must provide a function that can receive as an argument any number between 0 and 25 and return its Fibonacci number. You could use this function to populate the table. Since you can’t yet print anything on the MIC1, you’ll have to end with a HALT instruction and use the debugger to show that the program worked correctly.

You must turn in
  • A README file that contains a short write-up of your project. It should discuss the approach you took to solving the problem, it should discuss any problems or issues that still remain, it should discuss any interesting things that you learned in the course of the project. Finally, it should provide the grade you believe the project deserves with a detailed explanation of why. This explanation should almost certainly focus on why you believe the program is correct.

    This file must be in plain-text. If you need formatting, use Markdown. It must be limited to 80 characters wide, unless you are quoting program output.

  • Your assembly source, named fib.asm.

  • Your compiled object file, named fib.o.

  • A test input file, named test.in, that contains debugger input to display the computed Fibonacci numbers.

  • A test output file, named test.out, that contains the expected output for the test data.

  • A Makefile that first builds the program and then tests it by running it with test.in as the input and compares the actual output to test.out. You may assume that the masm and mic1 binaries are in the PATH.

This assignment will be graded based on its correctness and your ability to articulate why it is correct.