2017-03-12 19 views
0

私は仕様に従って、 "コンピュータアーキテクチャの定量的アプローチ"を守ろうとしている大学コースに参加しています。Mipsの最初のステップ - スピム:構文エラー

私たちの仕事は、MIPSでの挿入の並べ替えを書くことでしたが、私は自分のコードをデバッグする方法やそれをコンパイルする方法を知らないです。スクールのウェブページは、本のgcc-mips-elfとMipsItを指しています。

問題gcc-mips-elfが利用できないので、MipsItにエミュレータが必要なので、私はarchデータベースで見つけたネイティブシミュレータQtSpimを使うことにしました。私はコースのWebページからテンプレートを実行しようとすると、

しかし、スピムはエラーをスロー:syntax error on line 17 ... .word 5, 3, 4, 1, 2

#define t0 $8 
#define t1 $9 
#define t2 $10 
#define t3 $11 
#define t4 $12 

#define s0 $16 
#define s1 $17 
#define s2 $18 
#define s3 $19 

    .globl field 
    .data 
    .align 2 

field: 
    .word 5,3,4,1,2 

    .text 
    .globl start 
    .ent start 

start: 
    // your code goes here 
    nop 
    .end start 
+1

コードはGNUアセンブラで組み立てられるように書かれているように見えること。 SPIMとの互換性はありません。 '.word'ディレクティブは問題ではなく、WindowsのQtSpimで文法エラーを引き起こすことはありません。しかし、これらの '#define'行はすべてSPIMのコメントとみなされ、' .end'と '.ent'は私が知る限りSPIMにとって意味がなく、SPIMプログラムには' main'ラベルが必要です。 – Michael

+1

MIPSアセンブリ(x86ではなく)を使用する場合は、MARS(http://courses.missouristate.edu/KenVollmar/mars/)を見てください。SPIMよりもはるかに使いやすくなっています。 – Zack

+0

ツールを使いこなすのではなく、コンピュータアーキテクチャを学びたい場合は、推奨されているツールを推奨された方法で実行してください。 – markgz

答えて

0

.wordアセンブラディレクティブは以下の値をメモリ内の単一の単語を留保します。アセンブラは、アセンブラディレクティブの後に指定した値のリストを許可しません。代わりにこれを5つの別々のアセンブラ・ディレクティブに分解すると、構文エラーを解決するはずです。

具体的には、交換する必要があります。

.word 5,3,4,1,2

で:

.word 5 
.word 3 
.word 4 
.word 1 
.word 2
関連する問題