0

假设我有一个数组

ar .space 15

(数组 ar 的每个元素都是一个字符,4 个字节)所以当我执行时:

la $r0, ar 
add $r0,$r0,1
lb $r1, 8($r0)

第二行是否添加 4 个字节并指向第二个元素或 ar?第三行是否将第二个元素的地址偏移了 8 个字节,所以现在它指向 ar 的第四个元素?

谢谢

4

1 回答 1

0

Ar并没有真正的“元素”,它只是 15 个字节的空间。里面的东西完全取决于你如何使用它。

如果它是一个字符列表(1 个字节!),第二条指令会将地址加 1,从而指向第二个字符。第三条指令的地址将指向第九个字符(假设执行了第二个地址)。

如果是字列表(4字节),第二个地址会生成一个字内的地址,从而提供无效数据。如果是这种情况,地址应该增加4,如果您使用第二条或第三条指令的方法,则独立。此外,您应该lw代替lb这种情况。

于 2012-11-18T23:23:14.727 回答