2016-04-05 13 views
0

次のコードをwinMIOS64に読み込もうとしましたが、2行目にエラーが表示されて処理が失敗しました。 ?? !!ライン上のエラー2MIPSコードを正しく読み込む方法

- パス1:

最初のダイアログは言った:

.data 
     m1:.asciiz "enter the total number of digits" 
     m2:.asciiz "enter total number of digits" 
     m3:.asciiz "entered number:" 
     m4:.asciiz "sum of product:" 
     m5:.asciiz "not an armstrong number" 
.text 
main: 
     addi.d $sp,$sp,-20 
     sd $ra,0($sp) 
     sd $a0,4($sp) 
     sd $a1,8($sp) 
     sd $a2,12($sp) 
     sd $a3,16($sp) 
     jal start 

start: ld $a0,0($sp) #restore a0 from stack 
     ld $a1,4($sp) 
     ld $a2,8($sp) 
     ld $a3,12($sp) 
     ld $ra,16($sp) 
     addi.d $sp,$sp,20 #restore stack pointer 
     jr $ra #return to calling routing 
     halt 

次のコードがダウンロードされていない時にエラーダイアログに現れています2番目のダイアログによると:パス1でエラーが検出されました

+1

_ "それは私にエラーを与えましたin line 2 "_次に、質問に正確なエラーメッセージを含める必要があります。 – Michael

+0

このプログラムはその環境にコードをロードしませんでした。ダイアログでこのメッセージを表示しました –

+0

どのようなメッセージですか?エラーメッセージをそのままコピーする必要があります。なぜなら、人々がプログラムを起動して試してみることは期待できないからです。 –

答えて

1

エラーは、おそらくアドレスが整列していません。

あなたは、2行目でダブルワード保存しようとしている。

sd $ra, 0($sp) 

をしかし、あなたはダブルワードが整列されているアドレス(8の倍数)を通過されていません。あなたはダブルワードを格納しているので、彼らはそれぞれ離れて8バイトである必要があり

、あなたはだけでなく205レジスタのスタックに40バイトを割り当てるべきである:

addi.d $sp, $sp, -40 
関連する問題