MIPS 从地址加载值

MIPS loading values from address

我正在学习 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

或者,您可以使用 lui0x10010000 加载到 $t2,这会将 16 位的常量加载到寄存器的上半部分 - 这里您将使用 lui $t2, 0x1001.

如果低 16 位需要 non-zero(例如 0x10010400),则在 lui 之后使用 ori(例如 ori $t2, $t2, 0x0400).

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