假设我们在内存中存储了一串ASCII字符。字符串的长度位于$a0
,字符串的地址位于$a1
。
我知道我们可以使用加载指令获取此字符串,但有没有办法使用“only”bne
来获取字符串?
(这意味着可以在包含此字符串的内存部分使用的唯一指令是bne
。)
答案 0 :(得分:1)
我可以想到两种方法可以在字符串上使用bne
。
首先,既然知道了长度,那么你可能会有一个循环,在这个循环中你减去$ a0直到bne $a0 $zero getChar
失败而不是循环。
其次,如果你在谈论一个ASCIIZ字符串,你可以阅读字符,直到最后到达\0
。这就像bne $t0 $zero getChar
,其中$ t0包含刚从内存中读取的字符(类似于lb $t0 0($a1)
)。
第二个似乎不太可能,因为他们给你字符串长度。我的猜测是,练习旨在向您展示如何循环,直到变量达到零。