2016-04-06 7 views
0

私はこの割り当てをしており、開始方法を理解するのに問題があります。値を加算して平均を計算するMIPSプログラムを作成します。

次のようにあなたのプログラムは、データセクションが宣言している:

.data 
.byte 12 
.byte 97 
.byte 133 
.byte 82 
.byte 236 

は値を加算して平均を計算するプログラムを作成します。私は少しを行っているが、私はQtSpimに.ASMファイルをロードしようとするたびに、それはdoesnの中間結果に

を保存するために$8平均を保存するためにベースアドレス、$9を保存し、$10 にご利用ください正しく実行さえしない(すなわち、$8を除いて何もレジスタにロードされない)。私はthisを読んでいますが、何をすべきかをすべて理解している運はありません。ここに私が持っているものがあります:

編集:私はもう少し読んだ後にそれを働かせました。あるいは、少なくとも私は正しい道を歩いている。なぜなら、私は$ 9で正しい答えを得るからだ。

## Assignment4_Question2.asm 

     .data 
b1:  .byte 12 
b2:  .byte 97 
b3:  .byte 133 
b4:  .byte 82 
b5:  .byte 236 

     .text 

main: 
     ori $13,$0,0x5  # Initialize 5 for division later on 
     ori $12,$0,0  # Initialize $12 with 0 
     lui $8,0x1000  # Save base address 
     lbu $11,b1($8)  # Load byte 1 
     addu $10,$11,$12  # Add byte 1 to $12; $10 is now sum 
     lbu $11,b2($8)  # Load byte 2 
     addu $10,$11,$10  # Add byte 2 to sum 
     lbu $11,b3($8)  # Load byte 3 
     addu $10,$11,$10  # Add byte 3 to sum 
     lbu $11,b4($8)  # Load byte 4 
     addu $10,$11,$10  # Add byte 4 to sum 
     lbu $11,b5($8)  # Load byte 5 
     addu $10,$11,$10  # Add byte 5 to sum 
     divu $10,$13   # Divide sum by 5 
     mflo $9   # Store in $9 


## End of file 
+0

なぜ12($ 8)と97(8)からロードしようとしますか?私が知る限り、あなたはそれらの住所に何も置いていません。 – Michael

+0

私は最初は本当に混乱していましたが、私はちょうど今それを仕上げました。私は私の答えを私の投稿に編集します。 –

答えて

0
ori $13,$0,0x5  # Initialize 5 for division later on 
ori $12,$0,0  # Initialize $12 with 0 
lui $8,0x1000  # Save base address 
lbu $11,b1($8)  # Load byte 1 
addu $10,$11,$12  # Add byte 1 to $12; $10 is now sum 

あなたのアッドゥこの部分はあなたが非常に最後の最後アッドゥが欠落している理由です、何もしません。

関連する問題