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

Mips 如何在QT-Spim中增加字节计数器,mips,spim,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,因为我有一个循环,它不断接受用户输入的字符并将其添

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

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
这不管用

这使得编辑的str为:

str: .asciiz "abcdefghijklmnopqrstuvwxyza"
这并不完全正确(见)
.asciiz
表示以NULL结尾的字符串,但您只是用
'a'
重写了NULL终止符


这不管用

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

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