blob: 5be421735a6b662d6129abb278ede990317caa0c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
;; fibo(30)
30
fibo rel call
;; pop arguments and push return value to stack
pop rv
;; call print_number (syscall number is 1)
1 syscall
exit
fibo: ;; function fibo(x)
;; if (x > 2) then
0 ldarg 2 gt
.else rel jz
;; return fibo(x - 2) + fibo(x - 1)
0 ldarg 1 sub
fibo rel call
pop rv
0 ldarg 2 sub
fibo rel call
pop rv add
srv
ret
.else:
;; else return 1
1 srv
ret
|