MIPS - 获取数组值

时间:2015-02-13 01:19:39

标签: assembly mips

好的,所以我有一个存储在内存中的数组,我想基本上创建一个变量“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.

2 个答案:

答案 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)