28 lines
642 B
Plaintext
28 lines
642 B
Plaintext
db fib_count: 10 // How many more numbers to calculate after F(0) and F(1)
|
|
|
|
init:
|
|
lli 0, rg0 // F(0) = 0
|
|
lli 1, rg1 // F(1) = 1
|
|
ldb fib_count, rg2
|
|
|
|
loop:
|
|
add rg0, rg1, acc // rg4 = rg0 + rg1 (new Fibonacci number)
|
|
|
|
push rg0
|
|
mov rg1, rg0 // rg0 = previous rg1 (F(n-2) = F(n-1))
|
|
mov acc, rg1 // rg1 = rg4 (F(n-1) = F(n))
|
|
|
|
dec rg2 // rg2 = rg2 - 1
|
|
|
|
cmp rg2, zero // Compare counter with 0
|
|
jgt loop // Jump back if counter > 0
|
|
|
|
finish:
|
|
push rg0,
|
|
push rg1,
|
|
// Final Fibonacci number is in rg1
|
|
hlt
|
|
|
|
// jmp print::run
|
|
|