所以,在这段代码中,我试图在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
答案 0 :(得分:2)
你是如何得出答案的?我对MIPS很生疏,这是基于我从大学那里记得的。
x指向带有数据1的字节。在小端机器上,x + 5表示4字节字的结尾(数据为19),x + 8表示开头。所以19(10011)加载到$ t1,向左移动4到100110000(304或0x130)。最后,添加12以获得0x13C。
如果您不理解某事,请告诉我。它有助于绘制图表:)