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