Я хочу изменить символ в строке. Для этого я загружаю в $t2 символ, представляющий попадание. В этом примере символ " " на 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
li $t1, constant
. Это псевдоинструкция, которая использует 1 или 2 инструкции, необходимые для записи константы в регистр.lui
и/илиori
. (илиaddiu
) stackoverflow.com/questions/49550512/ 30.03.2018