assembly - 寄存器 a1 的地址超出范围错误
问题描述
我不明白为什么我得到这个地址超出范围错误。我正在使用数组索引来处理 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
解决方案
我修复了它,它与我放入数组索引括号中的寄存器有关
推荐阅读
- rabbitmq - 是否可以配置 RabbitMQ 管理插件使用的密码套件?
- node.js - 我正在尝试连接到 node.js,但我在 webstorm 中遇到了一些错误
- python - 如何仅针对类实例从子类方法更改python父类中的变量值
- ruby-on-rails - 为什么我必须把条件放两次?
- c# - 使用 C# asp.net / Net 4.7 为 HA 缓存大型对象
- excel - Excel VBA试图将数组与通配符匹配
- shell - 使用shell按字母顺序对多行记录进行排序
- asp.net - 如何在 Windows 窗体中添加 System.Web
- c# - 创建压缩文件夹 UWP
- javascript - 如何在这个 JavaScript 中更简单?