は私が取得:MIPSのレジスタ名をGAS(GNUアセンブラ)で使用することはできますか?私は名前を登録し使用している場合
Error: illegal operands `add $t0,$zero,$zero'
私はそれが動作数($8
代わりの$t0
、代わりに$zero
の$0
)を登録使用している場合。 (私はbinutils 2.17を使用しています)。
は私が取得:MIPSのレジスタ名をGAS(GNUアセンブラ)で使用することはできますか?私は名前を登録し使用している場合
Error: illegal operands `add $t0,$zero,$zero'
私はそれが動作数($8
代わりの$t0
、代わりに$zero
の$0
)を登録使用している場合。 (私はbinutils 2.17を使用しています)。
GNUアセンブラはシンボリックレジスタ名を直接サポートしていません。 gccを使用してアセンブラを駆動する場合の一般的なアプローチは、アセンブラ・ソース・ファイル(アセンブラの前にCプリプロセッサでソースを渡すようgccに指示する)に ".S"拡張子を使用し、定義を含むヘッダ・ファイルを#includeします以下のような:
#define zero $0
#define v0 $2
#define v1 $3
そして、アセンブラソースは
add v0, zero, zero
微妙な疑問: 'v0'と' v1'は '$ 2'と' $ 3'( '$ 1'は' at'です)です! –
あなたが正しいです - それは私が私の記憶を信頼するために得たものです。 –
ヘッダーが既にシステムの一部である可能性があることに注意してください。 '/ usr/include/sys/reg.h'や'/usr/include/mips-linux-gnu/sys/regdef.h'のようなファイルを探します。 –
のBinutils 2.18以降のシンボリックレジスタ名をサポートしていませんのようなステートメントを持つことができます。 –