汇编.byte数组

时间:2013-01-06 12:31:26

标签: assembly mips gas

我使用

定义了一个字节数组
.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

这种方法有效还是应该以其他方式进行?

提前致谢

2 个答案:

答案 0 :(得分:1)

1)是的,它可用 2)与C类似,第一个单元具有零偏移。    所以这样你就会指向第七个细胞。

答案 1 :(得分:0)

您的代码几乎有效,您只是缺少一对间接寻址的括号,如下所示:

lb $t1, ($t0) # load byte to $t1

此外,地址可以包含常量偏移,因此在您的情况下,您不必单独添加:

lb $t1, 6($t0) # load byte to $t1

请注意,这仅适用于常量。如果你想用另一个寄存器索引,你必须像你一样进行添加。

弗拉德已经回答了另一部分。