0

我是 mips 程序集的新手。我不知道这些指令到底是做什么的,所以我尝试对其进行测试。这是用于切换寄存器 t0 和 t1 值的代码。

# Perform swap.
    lw  $t3, 0($t0)
    lw  $t4, 0($t1) 
    sw  $t3, 0($t1)
    sw  $t4, 0($t0)

代码看起来很合理,将它们的值存储在 t3 和 t4 中,然后交换它们。我在这里无法理解的是为什么我们不能在这里使用移动或加载字而不是存储字?例如为什么代码不能这样?

# Perform swap.
    lw  $t3, 0($t0)
    lw  $t4, 0($t1) 
    move $t1,$t3
    move $to,$t4

或者像这样

# Perform swap.
lw  $t3, 0($t0)
lw  $t4, 0($t1) 
lw  $t1,0($t3)
lw $t2,0($t4)
4

1 回答 1

1

存储字(4字节):从寄存器中取出内容并将其存储在内存中

加载字(4字节):完全相反,从内存位置获取值并将其存储在寄存器中

移动:它是从寄存器 1 复制值(例如)并将其放入另一个寄存器

于 2019-02-27T17:17:59.170 回答