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