因此,我在MIPS中有一个简单的程序,该程序会输入内存中存在的单词数组的索引值。因此,说这个词是这样加载的:
Array: .word 0xAABBCCDD:16
因此,我将其输入用户输入并将其存储在$ T0中。我的问题是如何从我的话语中加载该特定索引?我想不出一种在寄存器中获得第三个字节的价值的方法。例如,说用户将在提示
中输入值3Input 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)