global str terminal_namespace = "/dev/term/0"; global str new_line = "\n"; function main () int n $0; int str_n $1; load_immediate 35 -> n; call fib n -> n; int_to_string n -> str_n; call pln str_n -> void; exit 0; function fib (int n $0) load_immediate 2 -> $1; jump_lt_int base_case n $1; load_immediate 2 -> $3; sub_int n $3 -> $4; call fib $4 -> $5; load_immediate 1 -> $3; sub_int n $3 -> $4; call fib $4 -> $6; add_int $6 $5 -> $7; return $7; else base_case; return n; function pln (str message $0) str ts $1; int mode $5; int msg_length $2; str nl $3; int nl_length $4; load_immediate terminal_namespace -> ts; load_immediate 0 -> mode; syscall OPEN ts mode -> ts; string_length message -> msg_length; syscall WRITE ts message msg_length; load_immediate new_line -> nl; string_length nl -> nl_length; syscall WRITE ts nl nl_length; return;