如何在QT Spim中增加字节计数器

时间:2013-04-23 22:05:22

标签: mips spim

例如,我有一个带有此字符串的程序:

str: .asciiz "abcdefghijklmnopqrstuvwxyz"

然后我通过执行以下操作在字符串末尾添加另一个字母:

la $t0, str
sb $t1, 26($t0) # the letter a  is stored into $t1

这使编辑后的str成为:

str: .asciiz "abcdefghijklmnopqrstuvwxyza"

我的问题是我如何将这个数字26增加到27,因为我有一个循环不断接受用户输入的字符并将其添加到字符串的末尾,但我一直用新的字符串替换字符串的最后一个字母信件。我想在每次循环一次时将26递增1,以便字符串保持加长,而不是被其他字母替换。我唯一能想到的是

sb $t1, $t2($t0)
add $t2, $t2, 1

哪个不起作用。

1 个答案:

答案 0 :(得分:0)

  

这使编辑后的str成为:

str: .asciiz "abcdefghijklmnopqrstuvwxyza"

这不完全正确(见my answer for your earlier question)。 .asciiz表示以NULL结尾的字符串,但您只是用'a'覆盖了NULL终止符。


add $t2, $t2, 1
  

哪个不起作用。

add指令将寄存器加在一起。如果要向寄存器添加立即值,请使用addiaddiu。例如:

addiu $t2,$t2,1  # add 1 to $t2, ignoring potential overflows