访问数组 MIPS 中的字节

Avi*_*ss 2 arrays mips

在 MIPS 中,我使用 .byte 创建了一个数组,并用值初始化。

array: .byte 1,2,3,4,5,6,7,8,9
Run Code Online (Sandbox Code Playgroud)

这些值以 8 位整数的形式存储在内存中,例如:

0x04030201
Run Code Online (Sandbox Code Playgroud)

如何访问各个值以便对整数求和?使用位掩码是唯一的方法吗?有更简单的方法吗?

小智 5

您可以使用操作码lb $t, offset($s)。它的工作方式与 相同lw $t, offset($s),但它将一个字节而不是 4 字节字加载到 $t 中。

假设您要加载数组的第 6 个字节。你会这样做:

la $t0, array  # load the array address
lb $t1, 5($t0) # get 6th byte through an offset

# then do whatever you want with it here
Run Code Online (Sandbox Code Playgroud)

编辑:您还可以lh使用 2 字节半字。另外,这是我用来回答您的问题的 MIPS 指令参考:http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html