MIPS - 访问和更改字符数组

时间:2014-06-22 23:05:54

标签: arrays char mips tic-tac-toe

我正在为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。请原谅这是多么可怕,集会,我不是朋友。

1 个答案:

答案 0 :(得分:2)

w / lw中的sw表示word,它是MIPS上4字节的单位。 boardArray中的元素是字节,而不是单词。

你有几个选择:要么让你的阵列成为一个单词阵列;或使用lbu / sb代替lw / sw并跳过索引缩放。