labels.icasm 714 B

12345678910111213
  1. ld @regA, 0 // jz, seq, lt register
  2. ld @counter, 10 // loop counter
  3. ld @lower, 0 // lower number
  4. ld @higher, 1 // higher number
  5. ld @regB, 0 // storage space
  6. Fibonacci:
  7. add @higher, 0, @regB // Move higher number to a storage point
  8. add @higher, @lower, @higher // Add higher and lower number, and store in higher number slot
  9. add @regB, 0, @lower // Move stored number to lower number slot
  10. add @counter, -1, @counter // Subtract 1 from the loop counter
  11. seq @counter, 0, @regA // Check if the loop counter is 0
  12. jz @regA, Fibonacci + 1 // Loop the function if not
  13. hlt // Otherwise, exit