arrays - MIPS addi 指令到数组基数

标签 arrays addition mips

我是 MIPS 的新手,很难理解这段代码的含义...... 其中 $s6 是数组 A 的开头:

addi $t0,$s6,4

我不确定这是否意味着 $t0 = A[4] -或者- 如果这意味着 $t0 = A[0] + 4,则取 A[0] 中的值并添加 4,然后将其保存回 A[0]

任何帮助将不胜感激。

提前谢谢您!!

最佳答案

行:

addi $t0,$s6,4

其中$s6是数组的基数,获取寄存器$s6的内容,加4并将结果放入$t0。因此,如果$s6中的地址是0x00400000,那么在addi指令之后,$t0将包含0x00400004。

addi 指令将立即数(即整数值)添加到源寄存器,并将结果存储在目标寄存器中,在本例中为 $t0。

所以如果 $s6 是 A[0],那么 $t0 就变成 A[1],假设你有一个整数数组。如果你有一个字符数组,即字符串,那么 $t0 就变成 A[3]。 $t0 不保存这些数组索引处的值,它保存这些数组索引的地址,因为那是 $s6 最初保存的。

关于arrays - MIPS addi 指令到数组基数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10472452/

相关文章:

javascript - 使用 Javascript 在 1 个数组中查找公共(public)元素

javascript - 可以从数组中的键中删除 HTML 标签吗?

java - 从 JBoss 4.2 迁移时出现 JBoss wildfly 10 NoClassDefFoundError

java - 在数据库中添加第二个表

assembly - MIPS 中的 .word 和 .equ 有什么区别?

c - C 中的 IF 条件转换为 MIPS

c - C 中比较空字符串的结果

Java内存节省技术?

c# - 在现有属性之后添加属性

arrays - 在 MIPS 中创建(和访问)数组