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