35 lines
467 B
NASM
35 lines
467 B
NASM
.text
|
|
main:
|
|
load $0 35
|
|
push $0
|
|
call &fib
|
|
pop $0
|
|
itos $1 $0
|
|
load $2, &terminal_str
|
|
slen $4, $3
|
|
sysc DEVICE_WRITE, 3, $2 ; print(sum.toS())
|
|
halt
|
|
fib:
|
|
popi $0
|
|
load $1 2
|
|
lodi $2 &base_case
|
|
jlti $2 $0 $1
|
|
load $2 2
|
|
subi $4 $0 $3
|
|
push $4
|
|
call &fib
|
|
load $2 1
|
|
subi $4 $0 $3
|
|
push $4
|
|
call &fib
|
|
pop $4
|
|
pop $5
|
|
addi $6 $5 $4
|
|
push $6
|
|
retn
|
|
base_case:
|
|
push $0
|
|
retn
|
|
.data
|
|
terminal_str: "/dev/term/0"
|