variables - MIPS 与变量的偏移量

标签 variables mips offset

当我使用 4 字节偏移加载变量时,如何将该变量加载到数组中?

例如...如果我有 C 赋值语句:

B[8] = A[i] + A[j]

lw $t0, 4j($s6)    # load A[j] into $t0
lw $ti, 4i($s6)    # load A[i] into $t1
add $t0, $t0, $t1  # Register $t0 gets A[i] + A[j]
sw $t0, 32($s7)    # Stores A[i] + A[j] into B[8]

这是为变量进行偏移的正确方法吗? 4j 和 4i 部分是我真正困惑的地方。

编辑:i和j有寄存器$s3和$s4,但我不知道如何使用

最佳答案

你已经非常接近了,你只需要计算偏移量:

li $s2, 4         # put constant 4 in s2
multu $s2, $s3    # multiply s3 by 4
mflo $s3          # put multiplication result back in s3
multu $s2, $s4    # multiply s4 by 4
mflo $s4          # put multiplication result back in s4
add $s4, $s6, $s4 # s4 = pointer to A[j]
add $s3, $s6, $s3 # s3 = pointer to A[i]
lw $t0, ($s4)     # load A[j] into t0
lw $t1, ($s3)     # load A[i] into t1
add $t0, $t0, $t1 # t0 = A[j] + A[i]
sw $t0, 32($s7)   # B[8] = A[i] + A[j]

关于variables - MIPS 与变量的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18908353/

相关文章:

Java风格: Multiple variable assignment

python - 分析 MIPS 二进制文件 : is there a Python library for parsing binary data?

javascript - 滚动偏移脚本中的 preventDefault undefined

具有动态行参数的 Excel OFFSET 函数

ruby - 枚举期间正在修改数组

javascript - JS : truly secret vars (for securely submitting a score)

assembly - MIPS 打印浮点系统调用仅打印零

mips - "trap"在 MIPS 术语中是什么意思?

twitter-bootstrap - Bootstrap 偏移量滚动 spy 不起作用

javascript - 如何替换 JavaScript 中同一 H1 元素中的变量值?