使用bne读取字符串

时间:2014-03-12 21:26:33

标签: assembly mips

假设我们在内存中存储了一串ASCII字符。字符串的长度位于$a0,字符串的地址位于$a1

我知道我们可以使用加载指令获取此字符串,但有没有办法使用“only”bne来获取字符串?

(这意味着可以在包含此字符串的内存部分使用的唯一指令是bne。)

1 个答案:

答案 0 :(得分:1)

我可以想到两种方法可以在字符串上使用bne

首先,既然知道了长度,那么你可能会有一个循环,在这个循环中你减去$ a0直到bne $a0 $zero getChar失败而不是循环。

其次,如果你在谈论一个ASCIIZ字符串,你可以阅读字符,直到最后到达\0。这就像bne $t0 $zero getChar,其中$ t0包含刚从内存中读取的字符(类似于lb $t0 0($a1))。

第二个似乎不太可能,因为他们给你字符串长度。我的猜测是,练习旨在向您展示如何循环,直到变量达到零。