内存访问汇编语法差异

时间:2018-01-17 10:56:34

标签: assembly syntax mips

我想知道这些

之间是否有任何区别

enter image description here

1 个答案:

答案 0 :(得分:0)

  • 在第一个示例中,$t0寄存器将在指令后包含value的地址。

    汇编程序将用" real"替换la指令。 MIPS指令 - 例如addiu如果value位于较低的32 kiB内存中(在"真正的" MIPS CPU中通常不是这种情况):

    addiu $t0, $zero, value
    lw $t1, 0($t0)
    

    如果value的地址不在第一个(或最后一个)32 kiB内存中,汇编器将用两条指令替换该指令:

    lui $t0, high_bits_of(value)
    addiu $t0, $t0, low_bits_of(value)
    lw $t1, 0($t0)
    
  • 在第二个示例中,$t0将在指令后包含0

    如果value的地址不在内存的前32 kiB内,程序将无效!