一个简单的MIPS编程问题[array,lw]

时间:2010-12-22 06:03:52

标签: assembly mips

所以,在这段代码中,我试图在HEX中找出$ t2和$ t3的值。我的答案是$ t2 = 0x30,$ t3是0x3C。但是,后面的答案是$ t2 = 0x130,$ t3 = 0x13C。有人可以解释一下吗?

    .data
x:  .byte 1, 2, 3, 4, 5
y:  .word 19, 20, 25, 30, 35

    .text
    addi $t0, $0, 8
    lw $t1, x($t0)
    sll $t2, $t1, 4
    ori $t3, $t2, 12

1 个答案:

答案 0 :(得分:2)

你是如何得出答案的?我对MIPS很生疏,这是基于我从大学那里记得的。

x指向带有数据1的字节。在小端机器上,x + 5表示4字节字的结尾(数据为19),x + 8表示开头。所以19(10011)加载到$ t1,向左移动4到100110000(304或0x130)。最后,添加12以获得0x13C。

如果您不理解某事,请告诉我。它有助于绘制图表:)