#### Did you know?

The Fibonacci Sequence is the series of numbers: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 … where the next number is found by adding up the two numbers just before it.

The first 10 numbers of the **Fibonacci number sequence** are:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55

The following table shows how we can calculate each Fibonacci number from this sequence:

Fibonacci Number | Calculation |

0 | |

1 | |

1 | = 0 + 1 |

2 | = 1 + 1 |

3 | = 1 + 2 |

5 | = 2 + 3 |

8 | = 3 + 5 |

13 | = 5 + 8 |

21 | = 8 + 13 |

… | … |

#### Little Man Computer

Your challenge is to write a program using one of the following online LMC Simulators to calculate and output the first 10 numbers of the Fibonacci sequence.

#### LMC Instruction Set

*Note that in the following table “xx” refers to a memory address (aka mailbox) in the RAM. The online LMC simulator has 100 different mailboxes in the RAM ranging from 00 to 99.*

Mnemonic |
Name |
Description |
Op Code |

INP | INPUT | Retrieve user input and stores it in the accumulator. | 901 |

OUT | OUTPUT | Output the value stored in the accumulator. | 902 |

LDA | LOAD | Load the Accumulator with the contents of the memory address given. | 5xx |

STA | STORE | Store the value in the Accumulator in the memory address given. | 3xx |

ADD | ADD | Add the contents of the memory address to the Accumulator | 1xx |

SUB | SUBTRACT | Subtract the contents of the memory address from the Accumulator | 2xx |

BRP | BRANCH IF POSITIVE | Branch/Jump to the address given if the Accumulator is zero or positive. | 8xx |

BRZ | BRANCH IF ZERO | Branch/Jump to the address given if the Accumulator is zero. | 7xx |

BRA | BRANCH ALWAYS | Branch/Jump to the address given. | 6xx |

HLT | HALT | Stop the code | 000 |

DAT | DATA LOCATION | Used to associate a label to a free memory address. An optional value can also be used to be stored at the memory address. |