2009-04-06 10 views
1

は私が取得:MIPSのレジスタ名をGAS(GNUアセンブラ)で使用することはできますか?私は名前を登録し使用している場合

Error: illegal operands `add $t0,$zero,$zero' 

私はそれが動作数($8代わりの$t0、代わりに$zero$0)を登録使用している場合。 (私はbinutils 2.17を使用しています)。

+0

のBinutils 2.18以降のシンボリックレジスタ名をサポートしていませんのようなステートメントを持つことができます。 –

答えて

2

GNUアセンブラはシンボリックレジスタ名を直接サポートしていません。 gccを使用してアセンブラを駆動する場合の一般的なアプローチは、アセンブラ・ソース・ファイル(アセンブラの前にCプリプロセッサでソースを渡すようgccに指示する)に ".S"拡張子を使用し、定義を含むヘッダ・ファイルを#includeします以下のような:

#define zero $0 
#define v0 $2 
#define v1 $3 

そして、アセンブラソースは

add v0, zero, zero 
+0

微妙な疑問: 'v0'と' v1'は '$ 2'と' $ 3'( '$ 1'は' at'です)です! –

+0

あなたが正しいです - それは私が私の記憶を信頼するために得たものです。 –

+0

ヘッダーが既にシステムの一部である可能性があることに注意してください。 '/ usr/include/sys/reg.h'や'/usr/include/mips-linux-gnu/sys/regdef.h'のようなファイルを探します。 –

関連する問題