在 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