Подсчет Intergers в массиве по MIPS - PullRequest
0 голосов
/ 28 октября 2019

Код 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) во втором раунде итерации. Почему это происходит и как правильно реализовать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...