ユーザーから読み取った整数を配列に格納しようとしていますが、配列に格納しようとすると、データが整列しなくなります。
この最初のコードブロックは、すべてのデータを初期化する場所です。(1の下は、整数を格納しようとしている場所です)
'#Constants
P_INT = 1 #Syscall to print integer(value)
P_STRING = 4 #Syscall to print a string(addr)
P_CHAR = 11 #Syscall to print a char(char)
R_INT = 5 #Syscall to read a integer(none)
EXIT = 10 #Exit program(none)
'#Data
.data
newline:
.asciiz "\n"
'#Space for the bored.
1.
board_rep:
.space 578
'#The current node to be read in
cur_node:
.word 0
'#Size of the bored
size:
.space 4
'#Plus sign
plus:
.asciiz "+"
'#dash
dash:
.asciiz "-"
ここが位置合わせされていない場所です(2の直後のsw)。奇妙なことに、サイズ配列に格納していることを除いて、後で(3番目のコードブロックで)まったく同じことを行っています。
'#Grabs user input for the bored and stores it
get_board_rep:
li $v0,R_INT '#Read next node and store it
syscall
2.
sw $v0,0($s1)
addi $s1,$s1,4 ' #Increment next node addr
lw $a0,0($s1)
j prnt_node
ストアワード(3の下)では、読み取り値を整数で細かく格納します。
la $s0, size ' #Store the variable addr's
la $s1, board_rep
li $v0,R_INT ' #Get user input(size of bored)
syscall
3.
sw $v0,0($s0) ' #Store the size of bored
jal get_board_rep
配列が大きすぎるのではないかと思いましたが、4(他の配列と同じサイズ)に変更しました。しかし、それはまだ調整されていませんでした。
前もって感謝します 。これはプロジェクトであり、このようなことを手伝うのが嫌いな人もいることを私は知っています。しかし、宿題を済ませたので、どこにも答えが見つかりません。