【问题标题】:MIPS loading values from addressMIPS 从地址加载值
【发布时间】:2020-10-16 01:51:06
【问题描述】:

我正在学习 MIPS 汇编语言,我想知道如何从地址加载值。例如我想将内存地址 0x10010000 存储在 $t2 中。 0x10010000 的值是 12,33,70,70(0x10010000 - 0x10010003)。 0x10010004 会有类似 F4,A6, 12,99((0x10010004 - 0x10010007) 的东西。

到目前为止我有这个

add $t3, $t2, $zero
lw $t4, 0($t3)
add $t5, $t4, -6
sw $t5, 4($t2)

但不知道如何“初始化”$t2

【问题讨论】:

  • 在你的数据上贴上标签,并使用la $t2, labelName

标签: assembly memory mips memory-address


【解决方案1】:

在您的数据上贴上标签,并使用la $t2, labelName

您也可以使用lui0x10010000 加载到$t2 中,这会将价值16 位的常量加载到寄存器的上部——这里您将使用lui $t2, 0x1001

如果低 16 位需要非零值(例如,0x10010400),则在 lui 之后使用 ori 完成它们(例如 ori $t2, $t2, 0x0400)。

另外,la 是一个伪指令。它通常会扩展为两条指令,并且,当您汇编代码时(例如在 MARS 或 QtSPIM 中),您将能够看到它。

【讨论】:

    猜你喜欢
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多