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

时间:2014-02-03 18:02:01

标签: assembly mips

所以我在MIPS中有一个简单的程序,它接受用户输入的内存中存在的字数组的索引值。所以说这个词是这样加载的:

Array: .word 0xAABBCCDD:16

所以我把它用户输入并存储在$ t0。我的问题是如何从我的单词中加载特定的索引?我想不出一种方法来获取寄存器中第三个字节的值。例如,假设用户在提示

中输入值3
Input value: 3

然后我想返回值0xAA。

Output: 0xAA

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

1 个答案:

答案 0 :(得分:2)

假设用户输入值在寄存器$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)