在MIPS

时间:2015-09-15 15:21:56

标签: assembly mips

我的教科书说MIPS汇编程序必须将大常量分成几部分,然后将它们重新组合成一个寄存器。并且它使用$ at作为

的临时注册

我一直在寻找一个具体的例子,有人有吗?

我已经看到一些网站说la伪指令使用$at转换为指令,但似乎并不需要。例如:

la $t0, 0xABCD1234

转换为

lui $t0, 0xABCD
ori $t0, $t0, 0x1234

1 个答案:

答案 0 :(得分:2)

以下是从my answer到先前有关使用lilw的问题的示例:

给出以下代码:

.data
ten: .word 10

.text 
main:
    lw $t0, ten

SPIM将为lw生成以下指令序列:

0x3c011001  lui $1, 4097                    ; lw $t0,ten
0x8c280000  lw $8, 0($1)

ten的地址首先放在$1$at)中,然后从该地址加载值。

或许sw会是一个更好的例子。在lw的情况下,我认为您可以将lw扩展为lui $8, 4097 / lw $8, ($8)。但在sw的情况下,您不希望用地址覆盖$t0

相关问题