Untitled
.text jal zero main multiply: lw t0 4 sp # load first parameter (a) lw t1 0 sp # load second parameter (b) addi t2 zero 0 # reset result register (result) schleife: beq t1 zero return # (if b == 0) goto return; add t2 t2 t0 # result = result + a; addi t1 t1 -1 # b--; jal zero schleife # goto schleife; return: addi sp sp -4 # sw t2 0 sp # Push result to stack jalr zero ra 0 # Return to caller factorial: lw t0 0 sp bne t0 x0 fall2 fall1: addi sp sp -4 addi t1 x0 1 sw t1 0 sp jalr zero ra 0 fall2: addi sp sp -8 sw ra 4 sp addi t1 t0 -1 sw t1 0 sp jal ra factorial lw t1 0 sp addi sp sp 8 lw t0 4 sp addi sp sp -8 sw t0 4 sp sw t1 0 sp jal ra multiply lw t0 0 sp addi sp sp 12 lw ra 0 sp sw t0 0 sp jalr zero ra 0 main: addi t0 zero 6 addi sp sp -4 sw t0 0 sp jal ra factorial lw t0 0 sp addi sp sp 4
Leave a Comment