Я не понимаю, почему я получаю этот адрес из-за ошибки диапазона. Я работаю над функцией sum2 с использованием индексации массива. Я пытаюсь загрузить значения для B в регистр $ a1
, строка 32: исключение времени выполнения по адресу 0x00400018: адрес вне диапазона 0x20020018
.data
A: .word 0,0,0
B: .word 0,0,0
.text
main:
jal read_A
sum2:
li $t7, 0
la $t5, B
lw $a1, B($t5)
add $t7,$t7,$a1
addi $t5, $t5, 4
lw $a1, B($t5)
add $t7, $t7, $a1
addi $t5, $t5, 4
lw $a1, B($t5)
add $t7, $t7, $a1
jr $ra
sum1:
li $t9, 0
la $t0, A
lw $a0, ($t0)
add $t9,$t9,$a0
addi $t0, $t0, 4
lw $a0, ($t0)
add $t9, $t9, $a0
la $t0, A+8
lw $a0, ($t0)
add $t9, $t9, $a0
jr $ra
.data
prompt: .asciiz "Enter three integers:\n"
.text
read_A:
la $a0, prompt
li $v0, 4
syscall
li $v0, 5 #read first integer
syscall
sw $v0, A #Save first integer
li $v0, 5 #save second integer
syscall
sw $v0, A+4 #Save second integer
li $v0, 5
syscall
sw $v0, A+8 #save 3rd integer
jr $ra