All pastes #743985 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-10-20 23:37 UTC
rendered paste body
start
;; data
load $2, 8

;; compare-vars
load $4, 2

;; kode
call fib

jmp slutt

fib
jeq $2, $0, fib_zero ; == 0
jle $2, $4, fib_two  ; <= 2

mov $9, $2   ; save input
call push

sub $2, $2, 1 ; input -= 1
call fib

call pop    ; reload input; it might have been destroyed by call
mov $2, $9

mov $9, $3
call push   ; save result

sub $2, $2, 2 ; input -= 2
call fib

call pop     ; reload last result
mov $5, $9

add $3, $3, $5 ; add results

ret

fib_zero
load $3, 0
ret

fib_two
load $3, 1
ret

push
dec sp
store $9, sp, 0
ret

pop
load $9, sp, 0
inc sp
ret

slutt
end start