34 lines
579 B
ArmAsm
34 lines
579 B
ArmAsm
_start:
|
|
li x1, 8 // ITERATION * 4
|
|
li x2, 10 * 4 // MAX ITERATIONS * 4
|
|
li x6, 0x100000 // MEM OFFSET
|
|
|
|
li x5, 1
|
|
sw x5, 4(x6)
|
|
fib:
|
|
add x3, x6, x1
|
|
lw x4, -4(x3) // get a
|
|
lw x5, -8(x3) // get b
|
|
add x4, x4, x5 // a = a + b
|
|
sw x4, (x3) // store a to c
|
|
|
|
// increment or stop
|
|
add x1, x1, 4
|
|
bne x1, x2, fib
|
|
|
|
li x5, 0
|
|
sw x5, (x6)
|
|
|
|
li x5, 1
|
|
sb x5, 1(x6)
|
|
lw x5, (x6)
|
|
mv x0, x5
|
|
|
|
li x5, 1
|
|
sh x5, (x6)
|
|
lw x5, (x6)
|
|
mv x0, x5
|
|
|
|
sh x0, 2(x6)
|
|
lw x5, (x6)
|
|
mv x0, x5 |