我使用
定义了一个字节数组.data
letters : .byte 0:26
我有一些问题: 1)阵列中的第一个单元是可供使用,还是用于其他目的? 2)如何加载数组的6(例如)单元格?
我考虑过使用:
la $t0, letters # load the array address to $t0
addi $t0, $t0 , 6 # update $t0 in order to get the 6th cell
lb $t1, $t0 # load byte to $t1
这种方法有效还是应该以其他方式进行?
提前致谢
答案 0 :(得分:1)
1)是的,它可用 2)与C类似,第一个单元具有零偏移。 所以这样你就会指向第七个细胞。
答案 1 :(得分:0)
您的代码几乎有效,您只是缺少一对间接寻址的括号,如下所示:
lb $t1, ($t0) # load byte to $t1
此外,地址可以包含常量偏移,因此在您的情况下,您不必单独添加:
lb $t1, 6($t0) # load byte to $t1
请注意,这仅适用于常量。如果你想用另一个寄存器索引,你必须像你一样进行添加。
弗拉德已经回答了另一部分。