我正在为MIPS中的家庭作业做一个tic tac toe游戏。
所以我设置了一系列字符:
boardArray:
.align 2
.byte '_', '_', '_', '_', '_', '_', '_', '_', '_', '-'
我试图像这样访问:
sll $t1,$t1,2 # multiply the index by 4
add $t2,$t4,$t1 # add the values of the address and the offset; store in $t2
lw $t3,($t2) # store the contents of $t2 in $t3
将最后一行替换为:
sw $s1,($t2) # store the value of $s1 in $t2
更改数组中的值。但是,它似乎没有起作用。我让玩家输入行和列值,然后尝试检查该位置(访问数组)以查看它是否打开(如果它打开它是'_')。如果它是打开的,那么它取而代之的是'X'或'O',具体取决于当前的玩家。我上传了整个程序here。请原谅这是多么可怕,集会,我不是朋友。
答案 0 :(得分:2)
w
/ lw
中的sw
表示word
,它是MIPS上4字节的单位。 boardArray
中的元素是字节,而不是单词。
你有几个选择:要么让你的阵列成为一个单词阵列;或使用lbu
/ sb
代替lw
/ sw
并跳过索引缩放。