2011-06-02 16 views
1

ああ男、私は下GCC-fasmブロックで)次のインラインアセンブリコードをコンパイルしながら、さらに別のエラーを持っている:GCCインラインアセンブリエラー:いいえ、そのような命令: `stosdは」

_asm 
{ 
    mov ecx, esi 
    shr ecx, 2 
    rep stosd 
}; 

GCCは、なぜそれがstosdを受け付けない、他のSTOSにの指示を理解???

+0

どのコンパイラのバージョンを使用していますか? – ColWhi

+0

また、エラーは何ですか? – ColWhi

+0

Apple GCC 4.2.1、エラーはそのような命令はありません: 'stosd '... – Ryan

答えて

2

あなたのintel構文を見てみると、STOSコマンドの明示的なバージョン:REP STOS DWORD PTR:[EDI]に行ってください。

gcc未満のiirc stosdは、stoslと呼ばれます。

+0

ありがとう! REP stoslは素晴らしい作品:) – Ryan

1

これを修正する別の方法は、gccに "-masm = intel"を指定してintelアセンブリ構文を使用するように指示することです。

関連する問題