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
  • 잘은 모르지만 무한 루프를 도는 거 아닐까 싶은데용? 엽토군 2022.10.20 12:37

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)