Код C ++ для программы MIPS:
void binCount(const int A[], int A_count[], int size){
for(int i=0;i<size;i++)
A_count[A[i]]++;
}
Размер A [] равен $ a2, базовый адрес A [] равен $ a1, а A_count [] равен $ a0. Мой инструмент -
bin_count:
addi $t1,$zero,0
Loop: sll $t2,$t1,2
add $t3,$a1,$t1
lw $t4,0($t3)
sll $t5,$t4,2
add $t6,$a0,$t5
lw $t7,0($t6)
addi $t7,$t7,1
sw $t7,0($t6)
addi $t1,$t1,1
bne $t1,$a2,Loop
jr $ra
Однако отладка говорит, что он выходит за пределы диапазона при запуске строки lw $t4,0($t3)
во втором раунде итерации. Почему это происходит и как правильно реализовать это?