Carmi Merimovich

כרמי מרימוביץ

אתר אישי

סדרת פיבונצ'י לולאה

fibo::
    addi    t2, x0, 2   // 2
    bge     a0, t2, work // n > 1
    addi    a0, x0, 1   // f(0) = f(1) = 1
    jalr    x0, 0(ra)

work:
    addi    t0, x0, 1   // f(0)
    addi    t1, x0, 1   // f(1)
loop:
    add     t3, t0, t1  // f(k-1) + f(k-2)
    add     t0, t1, 0
    add     t1, t3, 0
    addi    a0, a0, -1  // n--
    bge     a0, t2, loop

done:    
    add     a0, t3, x0  // return value
    jalr    x0, 0(ra)