diff options
1 files changed, 16 insertions, 38 deletions
| -rw-r--r-- | example.s | 54 |
@@ -1,43 +1,21 @@ -beq condition, if_true -jmp if_false +f0 = 0 +f1 = 1 +fN = 0 +n = 5 -if_true: - mov 517, %1 - jmp endif +fib: + beq n, fib_result ; while n > 0 -if_false: - mov 1952, %1 + mov f0, fN ; fN = f0 + f1 + add f1, fN + mov f1, f0 ; f0 = f1 + mov fN, f1 ; f1 = fN -endif: - jmp %0 + dec n ; n-- -condition = %30 + jmp fib -; 0 beq Memory(0), Instruction(2), -; 0: subleq Memory(0), Memory(0), Instruction(2), -; 1: subleq Memory(0), Memory(0), Instruction(4), -; 2: subleq Memory(0), Memory(0), Instruction(3), -; 3: subleq Memory(0), Memory(0), Instruction( 5 ), -; -; 1 jmp Instruction(4), -; 4: subleq Memory(0), Memory(0), Instruction( 10 ), -; -;if_true: -; 2 mov Constants(0), Memory(1), -; 5: subleq Memory(1), Memory(1), Instruction(6), -; 6: subleq Constants(0), Memory(0), Instruction(7), -; 7: subleq Memory(0), Memory(1), Instruction(8), -; 8: subleq Memory(0), Memory(0), Instruction(9), -; -; 3 jmp Instruction(5), -; 9: subleq Memory(0), Memory(0), Instruction( 14 ), -; -;if_false: -; 4 mov Constants(1), Memory(4), -; 10: subleq Memory(1), Memory(1), Instruction(11), -; 11: subleq Constants(1), Memory(0), Instruction(12), -; 12: subleq Memory(0), Memory(1), Instruction(13), -; 13: subleq Memory(0), Memory(0), Instruction(14), -; -; 5 jmp Memory(0), -; 14: subleq Memory(0), Memory(0), Memory(0), +fib_result: + mov f0, %1000 ; return f0 + mov %0, f0 ; Reset f0 + mov %1, f1 ; Reset f1 |
