好的,所以我有一个存储在内存中的数组,我想基本上创建一个变量“i”并获取索引i的数组值。我如何在MIPS中执行此操作?提前致谢!这是我的代码。
.data
array: .word 0:100
.text
li $t0, 5 #this is my representation of "i"
la $t2, array
lw $t1, i($t2) #this is where i am messed up.
答案 0 :(得分:1)
您应该将基数和索引一起添加,并记住按字大小缩放4。像这样:
li $t0, 5 # this is my representation of "i"
la $t2, array
sll $t1, $t0, 2 # scale by 4
addu $t1, $t1, $t2 # add offset and base together
lw $t1, ($t1) # fetch the data
如果i($t2)
是一个符合16位的直接常量,则只能使用i
样式。
答案 1 :(得分:0)
要添加上一个答案,如果您的阵列恰好位于RAM的前64k,您也可以这样做:
lw $t1, array($t1)