2014-06-22 4 views
0

MIPS에서 숙제를 위해 tic tac toe 게임을하고 있습니다.MIPS - 문자 배열 액세스 및 변경

sw $s1,($t2)   # store the value of $s1 in $t2 
:로 대체 마지막 행으로

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 

: 내가 지금처럼 액세스를 시도하고있어

boardArray: 
    .align 2 
    .byte '_', '_', '_', '_', '_', '_', '_', '_', '_', '-' 

: 그래서

나는과 같이 설정 문자의 배열을

배열의 값을 변경하려면. 그러나 작동하지 않는 것 같습니다. 플레이어가 행과 열 값을 입력 한 다음 해당 위치 (배열에 액세스)를 확인하여 열려 있는지 확인합니다 (열 경우 '_'). 열려 있으면 현재 플레이어에 따라 'X'또는 'O'로 바뀝니다. 전체 프로그램 here을 업로드했습니다. 얼마나 끔찍한 지, 조립과 나는 친구가 아닙니다.

답변

2

lw/swword을 의미하며, 이는 MIPS에서 4 바이트의 단위입니다. boardArray의 요소는 단어가 아니라 바이트입니다.

두 가지 대안이 있습니다. 배열에 단어 배열을 지정하거나, lw/sw 대신 lbu/sb을 사용하고 인덱스 크기 조정을 건너 뜁니다.