44 lines
762 B
C
44 lines
762 B
C
// Fibonacci sequence, recursive version
|
|
fun fibb
|
|
loop
|
|
a = funparam[0]
|
|
break (a < 2)
|
|
|
|
a--
|
|
|
|
// Save "a" while calling fibb
|
|
a -> stack
|
|
|
|
// Set the parameter and call fibb
|
|
funparam[0] = a
|
|
call fibb
|
|
|
|
// Handle the return value and restore "a"
|
|
b = funparam[0]
|
|
stack -> a
|
|
|
|
// Save "b" while calling fibb again
|
|
b -> stack
|
|
|
|
a--
|
|
|
|
// Set the parameter and call fibb
|
|
funparam[0] = a
|
|
call fibb
|
|
|
|
// Handle the return value and restore "b"
|
|
c = funparam[0]
|
|
stack -> b
|
|
|
|
// Sum the results
|
|
b += c
|
|
a = b
|
|
|
|
funparam[0] = a
|
|
|
|
break
|
|
end
|
|
end
|
|
|
|
// vim: set syntax=c ts=4 sw=4 et:
|