нахождение минимального целого числа и его адреса в mips

Я изучаю язык ассемблера и использую 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

person user2925913    schedule 27.10.2013    source источник


Ответы (1)


Вам нужно будет определить размер массива и проверить количество проверенных элементов, ИЛИ определить последний элемент массива (например, ноль) и остановиться, если вы встретите этот элемент.

person Patrik    schedule 29.10.2013