假设我有一个数组
ar .space 15
(数组ar的每个元素是一个char,4个字节) 所以当我执行时:
la $r0, ar
add $r0,$r0,1
lb $r1, 8($r0)
第二行是否添加4个字节并指向第二个元素或ar?第三行是否将第二个元素的地址偏移了8个字节,所以现在它指向ar的第4个元素?
谢谢
答案 0 :(得分:0)
Ar
实际上没有“元素”,它只是一个15字节的空间。里面的内容完全取决于你如何使用它。
如果它是一个字符列表(1个字节!),第二个指令将增加1的地址,从而指向第二个字符。第三条指令的地址将指向第九个字符(提供第二个地址)。
如果是单词列表(4个字节),则第二个地址将在单词内生成一个地址,从而提供无效数据。如果是这种情况,如果您使用第二或第三条指令的方法,则地址应增加4,独立。此外,在这种情况下,您应该lw
而不是lb
。