Я новичок в MIPS, и у меня только что была эта проблема.
Вот что у меня было:
.data
.text
swap:
# do stuff
jr $ra
main:
# do stuff
jal swap
li $v0,10
syscall
Я исправил это, изменив это на:
.data
.text
main:
# do stuff
jal swap
li $v0,10
syscall
swap:
# do stuff
jr $ra
Обратите внимание, что я переместился в главное, чтобы быть перед свопом. Я ошибочно предположил, что main был зарезервированным ярлыком. И что он автоматически прыгнет прямо на главную в первую очередь. Но, очевидно, это не тот случай, потому что он выполнял мои инструкции jr $ ra, прежде чем я вызвал jal swap в main.
В любом случае, я надеюсь, что это поможет.