f0 = 0 f1 = 1 fN = 0 n = 5 fib: beq n, fib_result ; while n > 0 mov f0, fN ; fN = f0 + f1 add f1, fN mov f1, f0 ; f0 = f1 mov fN, f1 ; f1 = fN dec n ; n-- jmp fib fib_result: mov f0, %1000 ; return f0 mov %0, f0 ; Reset f0 mov %1, f1 ; Reset f1