.global printi .type printi, @function .global _start .type _start, @function .text printi: addi sp, sp, -16 sw s0, 0(sp) sw ra, 4(sp) addi s0, sp, 16 addi t1, zero, '\n' sb t1, -1(s0) # t0 - Whole number. # t1 - Constant 10. # a1 - Local buffer. # t2 - Current character. lw t0, 0(s0) addi t1, zero, 10 addi a1, s0, -2 .digit10: rem t2, t0, t1 addi t2, t2, '0' sb t2, 0(a1) div t0, t0, t1 addi a1, a1, -1 bne zero, t0, .digit10 ecall addi a0, zero, 1 addi a1, a1, 1 sub a2, s0, a1 addi a7, zero, 64 ecall lw s0, 0(sp) lw ra, 4(sp) addi sp, sp, 16 ret _start: call main addi a0, zero, 0 addi a7, zero, 93 ecall