.function Main 0

ldconst 0
call Fibo
out
pop

ldconst 1
call Fibo
out
pop

ldconst 2
call Fibo
out
pop

ldconst 3
call Fibo
out
pop

ldconst 4
call Fibo
out
pop

ldconst 5
call Fibo
out
pop

ldconst 6
call Fibo
out
pop

ldconst 7
call Fibo
out
pop

ldconst 8
call Fibo
out
pop

ldconst 0
ret


.function Fibo 1

# if $0 < 1 { return 0; }
ldloc 0
ldconst 1
lt
brf LBL1
ldconst 0
goto END

# else if $0 < 2 { return 0; }
LBL1: ldloc 0
ldconst 2
lt
brf LBL2
ldconst 1
goto END

# else { return Fibo($0 - 2) + Fibo($0 - 1); }
LBL2: ldloc 0
ldconst 2
sub
call Fibo
ldloc 0
ldconst 1
sub
call Fibo
add

END: ret