我想更改字符串中的字符。为此,我在$ t2中加载代表命中的char。在此示例中,第7个位置的“”字符应更改为“x”。
尝试使用sh $t2, 0($t0)
更新我的电路板后,我收到以下错误:
Exception occurred at PC=0x0040003c
Unaligned adress in store: 0x1001000f
我想我无法使用我使用的命令更新电路板,你能告诉我该怎么做吗?提前谢谢你:)
# data segment
.data
hit: .asciiz "-"
ship: .asciiz "x"
miss: .asciiz "o"
water: .asciiz " "
board: .asciiz " x xx x x x x xxx x x x x x xxxx x x x xx x x xx"
.text
.globl main
main:
la $t0, board
# this is position of the array which should be a "x" char at the moment
addi $t0, $t0, 7
la $t1, hit
lhu $t2, 0($t1) # loading the hit char "-"
sh $t2, 0($t0) # ERROR : Here I tried to update the board
li $v0, 10
syscall
答案 0 :(得分:1)
您需要使用sb来存储一个字节。 sh存储一个半字,必须是双字节对齐的。