2009-06-23 9 views
1

愚かな質問ですが、gccで必要なフラグが見つかりません。 Error: invalid char '[' beginning operand 2 [タイミング] ' `x86インラインアセンブラフラグ

は、今私は長い時間前に私が使用したことを覚えている:基本的に、私はコンパイルすると、私が言うにErrorMessageを得る

__asm__ __volatile__ ("lea ebx, [timings] \n\t"); 

私のCプログラムでは、以下のインラインアセンブラコードを持っていますコンパイラにx86インラインアセンブリであることを伝えるフラグのようなものです。しかし、それをオンラインで見つけることはできません、誰かが私が使用する必要があるフラグを教えてください?

ありがとうございました!

答えて

-2

代わりに__asm__をお試しください。もっと見るためにhereを見てください。

また、アセンブリコードの内側から\ n \ tを削除してみてください。

6

GCCで変数を指定することはできません。インラインアセンブラの使用方法の詳細については、this documentを参照してください。また、GCCはインテル構文ではなくAT & T構文を使用するので、あなたの目的地を右側に置かなければならないことに注意してください。

+0

私は過去にそれをやったことがありますが、あなたはintel構文を使ってコンパイラで指定することができますが、愚かなことはどうして忘れてしまったのですか? –

+0

GCCのドキュメントからは、 = DIALECT '選択されたダイヤルを使用してasm命令を出力します。サポートされる選択肢は、 'int 'または' att'(デフォルトのもの)です。ダーウィンは 'intel 'をサポートしていません。 – ephemient