.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해가지고 리턴값에 집어넣고 그런건데
직접 돌려보니까 결과값이 안나오네 ㅠㅠ
혹시 어디 잘못된 부분 있음?
오타있네 저거 s0레지스터랑 s1레지스터에도 스택공간 할당해뒀음. 이게 무슨의미인지도 잘 모르겠지만 ㅋㅋㅋㅋㅋㅋㅋㅋ
MIPS로 최종 cpu 설계 해보셔야죠 ㅎㅎ
MIPS 인스트럭션 공부하고 질문해라
책이 원서인데 모르는부분이 어디에 나와있는지 찾기도 힘들고 ㅠㅠ