2016-05-06 93 views
4

アセンブリでプログラミングしていて、ラベル.byteを使用すると、Qtspimで問題を実行しています。私はその位置や価値を変えようとしましたが、問題は解決せず、おそらくラベルです。"spim:(parser)syntax error on line [...]"私がラベルを使用した場所.byte

エラー応答は3行目です。ラベルの最後にパーサーがあります。

main: 

.data 
    v : .byte 2,0,0,0,4,0,0,0 
    array: .byte 2,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,11,0,0,0,13,0,0,0,17,0,0,0,19,0,0,0 

[..] # other code 

私は.byte.spaceに問題が発生しないディレクティブを変更します。

どうすれば解決できますか?

+1

エラーが発生することが明らかではありません。宣言サイトで、または後でラベルを使用しようとしたときに発生しますか?また、テキストセクションの中央にデータセクションがあるのはなぜですか?彼らは完全に分離するべきです。 – Michael

+0

コードのより広範な断片を提供すると便利です。 – zx485

答えて

0

少なくともQtSpimでは、配列にコンマの後にスペースが必要です。だからうまくいくでしょう:

.data 
v: .byte 2, 0, 0, 0, 4, 0, 0, 0 

各値の後にスペースを入れてください。

この理由は、パーサーQtSpimではカンマまたはドットを小数点記号として使用できるためです。したがって、分離するスペースがなければ、あなたの定義について混乱します。

これはfloatを定義するために許可されます:

flo: .float 2,2 
+0

ありがとうございました。ラボでは違いがないので、私は各値の間のスペースを使用しませんでした。だから私は問題がコンピュータの違い(私の個人的なラップトップとPCラボ)で変化するのか理解していない。 – Andrew

+0

@Andrewそれは面白いです。私がソースコードから手に入れたのは、常にスペースが必要であるということでした。しかし、スペースがあれば少なくともそれは不平を言うべきではないので、いつでも追加することができます。 –

+0

徹底的な回答をいただきありがとうございます。 – Andrew