試圖讓此程序正常工作,但我無法弄清楚爲什麼我總是收到錯誤。程序假設輸入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組裝的味道。 –