次の方法で共有


コンパイラ エラー C2422

'operand' で誤ったセグメント オーバーライドが使われています

インライン アセンブリ コードで、オペランドに対してセグメント オーバーライド演算子 (コロン) が誤って使用されています。 以下の原因が考えられます。

  • 演算子の前のレジスタがセグメント レジスタではありません。

  • 演算子の前のレジスタがオペランドの唯一のセグメント レジスタではありません。

  • セグメント オーバーライド演算子が、間接演算子 (ブラケット) 内にあります。

  • セグメント オーバーライド演算子の後の式が、即値オペランドまたはメモリ オペランドではありません。

次の例では警告 C2422 が生成されます。

// C2422.cpp
// processor: x86
int main() {
   _asm {
      mov AX, [BX:ES]   // C2422
      mov AX, ES   // OK
   }
}