Найти минимальное целое число и его адрес в мипах
Я изучаю ассемблер и использую mips. Мой код работает нормально, но не останавливается, когда массив закончен
Это мой код, можете ли вы сказать мне, что является правильным условием (в B:), чтобы остановить программу и перейти к существованию?
.data
A: .word 12,31,5,72,4
E: .byte
.text
la $t1,A # t1 is the min
lw $s1,A
la $t2,E
subu $t5,$t2,$t1 # t5 to know the location of the last value and decreses it
move $t6,$t1
move $t3,$t1 #adress of next value
srl $t4,$t5,2
addi $t7,$t4,0
outerloop:
#addiu $t1,$t1,4
x:
addiu $t3,$t3,4
lw $s2,0($t3)
bleu $s1,$s2,B
move $t6,$t3
lw $s6,0($t6)
subiu $t5,$t5,4
B: j x
exit:
li $v0,10
syscall
1 ответ
Вам нужно будет определить размер для массива и проверить количество проверенных элементов, ИЛИ определить конечный элемент массива (например, ноль), и остановиться, если вы встретите этот элемент.