试图让此程序正常工作,但我无法弄清楚为什么我总是收到错误。程序假设输入11个字符,然后输出反向输入。错误如下。在MIPS中反转字符串
运行时异常在0x00400034:店面地址字边界0x7fffeffb
的代码如下张贴在未对齐。我还需要将最终的反转字符串存储到'revstr'中。我只是在逆转中遇到麻烦。
.data
str: .space 12
revstr: .space 12
prompt: .asciiz "Enter in string, max 11 characters: "
.text
main:
la $a0, prompt #calling opening prompt
li $v0, 4
syscall
li $v0, 8
la $a0, str
li $a1, 12
syscall
li $t0, 0
subu $sp, $sp, 1
sw $t0, ($sp)
li $t1, 0
bump1:
lbu $t0, str($t1)
beqz $t0, stend
subu $sp, $sp, 4
sw $t0, ($sp)
addu $t1, $t1, 1
j bump1
stend: li $t1, 0
populate:
lw $t0, ($sp)
addu $sp, $sp, 4
beqz $t0, done
sb $t0, str($t1)
addu $t1, $t1, 1
j populate
done:
li $v0, 4
la $a1, str
syscall
li $v0, 10
syscall
实际上,偏移量是一个隐含的'0'至少在我的MIPS组装的味道。 –