使用存储在寄存器中的用户输入值加载索引位置



因此,我在MIPS中有一个简单的程序,该程序会输入内存中存在的单词数组的索引值。因此,说这个词是这样加载的:

Array: .word 0xAABBCCDD:16

因此,我将其输入用户输入并将其存储在$ T0中。我的问题是如何从我的话语中加载该特定索引?我想不出一种在寄存器中获得第三个字节的价值的方法。例如,说用户将在提示

中输入值3
Input value: 3

然后我想返回值0xaa。

Output: 0xAA

我想不出一种方法来获得正确的偏移,而索引值在寄存器中。我知道使用LW时我不能使用两个寄存器,因为没有足够的内存。那么,我在这里忽略了一些简单的过程吗?谢谢。

假设用户输入值在寄存器$t1中:

la    $t0,ARRAY   # starting address of array
addu  $t1,$t0     # add starting address to user input value
lb    $t2,($t1)   # load $t2 with the byte at (ARRAY + user_input)