我正在尝试将我从用户读取的整数存储到数组中,但是当我尝试将其存储到我的数组中时,我的数据变得不对齐。
第一个代码块是我初始化所有数据的地方。 (在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.之后的右边)。奇怪的是,我之后会做同样的事情(在第三个代码块中),除了我将它存储在size数组中。
'#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 "-"
在商店字(在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
我想也许这个数组太大了但我把它改成了4(与其他工作的数组大小相同)。但它仍然是未对齐的。
提前致谢。这是一个项目,我知道有些人不喜欢帮助这样的事情。但我做完了我的作业,我无法在任何地方找到答案。
答案 0 :(得分:1)
这看起来并不符合我,如果我错了,请尝试明确地对齐它。