将MIPS二进制代码翻译成MIPS程序集

我对MIPS非常陌生,在这部分任务中需要帮助。

    .data
fvar:   .word   0
gvar:   .word   10
hvar:   .word   -5
ivar:   .word   6
jvar:   .word   3

    .text
    .globl main
main:
    la $t2, fvar

对于la指令,二进制代码(我的教授一起发送)如下

0011 1100 0000 1010 0001 0000 0000 0000

对于MIPS la指令,我知道它是由lui,ori组成的。 我也读过MIPS手册,并且知道32位的部分意味着什么。

这是我感到困惑的部分:

我使用QtSpim来读取汇编代码和模拟。 当我运行la部分时,$ t2变为10010000。

$ t2应该不是1000000? 在手册中,它说最后的16位是立即值,它变成了更高的16位数。

但是我也很困惑,因为我读过另一个答案:1001是.data段(在MARS模拟器中)的默认加载地址。 如果QtSpim仿真器属于这种情况,是不是忽略了二进制代码中的最后16位?

链接地址: http://www.djcxy.com/p/19221.html

上一篇: translating MIPS binary code to MIPS assembly

下一篇: How to create a jump table using a jr instruction?