mips 어셈블리어 재귀함수 오류
조회수 284회
mips 를 qtspim을 사용하여 구현하고 있는데요. 밑에 코드를 실행시키면 "Can't Expand Stack Segment By..." 와 같은 오류가 계속해서 뜹니다. 그 이유를 잘 모르겠어요.
.data
first : .asciiz "Type 1st number: "
second : .asciiz "Type 2nd number: "
output1 : .asciiz "Multyplying from "
output2 : .asciiz "to "
str : .asciiz ": "
.text
main:
la $a0, first
li $v0, 4
syscall
li $v0, 5
syscall
move $a0, $v0
move $t0 ,$a0
la $a0, second
li $v0, 4
syscall
li $v0, 5
syscall
move $a1, $v0
move $t1, $a1
jal multiply
move $t2, $v0
la $a0, output1
li $v0, 4
syscall
move $a0, $t0
li $v0, 1
syscall
la $a0, output2
li $v0, 4
syscall
move $a0, $t1
li $v0, 1
syscall
la $a0, str
li $v0 ,4
syscall
move $a0, $t2
li $v0, 1
syscall
li $v0, 10
syscall
multiply:
addi $sp, $sp, -12
sw $ra, 8($sp)
sw $a0, 4($sp)
sw $a1, 0($sp)
bne $a0, $a1, L1
add $v0, $zero, $a0
addi $sp, $sp, 12
jr $ra
L1:
addi $a0, $a0, -1
jal multiply
lw $a1, 0($sp)
lw $a0, 4($sp)
lw $ra, 8($sp)
addi $sp, $sp, 12
mul $v0, $a0, $v0
jr $ra
댓글 입력