Итак, я новичок в MIPS и пытаюсь создать программу в сборке MIPS, которая находит максимальное значение в массиве:
.data
A: .word 11 100 3 5 8 13 1 16 #array of integers
N: .word 8 # array length
output_max: .asciiz "The max value is: "
.text
.globl main
main:
la $a0 N
la $a1 A
jal max
move $s0 $v0
li $v0 4
la $a0 output_max
syscall
li $v0 1
move $a0 $s0
syscall
j exit
exit:
li $v0 10
syscall
max:
move $t0 $a0
move $t1 $a1
lw $v0 0($t1)
li $t2 0
j maxLoop
maxLoop:
addi $t2 $t2 1
beq $t2 $t0 maxEnd
addi $t1 $t1 4
lw $t3 0($t1)
slt $t4 $v0 $t3
beq $t4 1 changeMax
j maxLoop
changeMax:
move $v0 $t3
j maxLoop
maxEnd:
jr $ra
Функция max должна возвращать максимальное значение во входном массиве. Поэтому после компиляции он переходит в бесконечный цикл. не совсем понимаю где проблема..