.text

.globl __start


leaf_function:


addi $sp, $sp, -8

sw $ra, 4($sp)

sw $a0, 0($sp)

addi $s0, $a0, 1

slti $s1, $a0, 6

beq $s1, $zero, L1

add $v0, $zero, $s0

addi $sp, $sp, 8

jr $ra


L1:

add $a0, $zero, $s0

jal leaf_function

lw $a0, 0($sp)

lw $ra, 4($sp)

addi $sp, $sp, 8

jr $ra


__start:

la $a0, X

jal leaf_function


move $a0, $v0

li $v0, 1

syscall


li $v0, 10

syscall


.data

X: .word 1




이번에 복학한 학부생인데


이거 C언어로 바꿔보면 대충 a0에다가 +1해가지고 리턴값에 집어넣고 그런건데


직접 돌려보니까 결과값이 안나오네 ㅠㅠ


혹시 어디 잘못된 부분 있음?