1

我正在尝试将从用户读取的整数存储到数组中,但是当我尝试将其存储到我的数组中时,我的数据变得未对齐。

第一个代码块是我初始化所有数据的地方。(在 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。)。奇怪的是,我稍后(在第三个代码块中)做了完全相同的事情,只是我将它存储在 size 数组中。

'#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(与另一个有效的数组大小相同)。但它仍然没有对齐。

提前致谢 。这是一个项目,我知道有些人不喜欢帮助这样的事情。但是我已经完成了作业,我无法在任何地方找到答案。

4

1 回答 1

1

这看起来与我不一致,如果我错了,请尝试明确地对齐它。

于 2012-04-29T02:47:05.350 回答