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)。奇妙なことに、サイズ配列に格納していることを除いて、後で(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(他の配列と同じサイズ)に変更しました。しかし、それはまだ調整されていませんでした。

前もって感謝します 。これはプロジェクトであり、このようなことを手伝うのが嫌いな人もいることを私は知っています。しかし、宿題を済ませたので、どこにも答えが見つかりません。

4

1 に答える 1

1

それは私には合っていないように見えます。間違っている場合は、とにかく明示的に揃えてみてください。

于 2012-04-29T02:47:05.350 に答える