如何在MIPS中翻译la指令?

时间:2017-01-26 03:14:12

标签: mips translation instructions

我知道MIPS中的la分解为luiori,但这些说明的参数是什么?

我在这里查看了这个问题MIPS Pseudo istructions, replacements,但结果lui总是使用4097?

请考虑以下事项:

       .data
_a:    .space    4
       .text
main:  la       $s0,_a

这会被翻译成这个吗?

lui    $at,4097
ori    $s0,$at,0

谢谢!

2 个答案:

答案 0 :(得分:1)

4097十进制是0x1001。这是0x10010000的高16位。

这是.data模拟器中mars段开头的默认加载地址。

如果您已完成la $s0,main,则lui将为lui $at,0x0040,因为.text的默认起始地址为0x00400000。

要了解其中的差异,请尝试以下程序:

       .data
_a:    .space    100000
_b:    .space    4
       .text
main:  la       $s0,_b

答案 1 :(得分:0)

lui加载地址的高16位,ori加载地址的低16位。地址可以是任何32位值,因此lui通常不会加载4097。