コンパイラ エラー C2422
'operand' で誤ったセグメント オーバーライドが使われています
インライン アセンブリ コードで、オペランドに対してセグメント オーバーライド演算子 (コロン) が誤って使用されています。 以下の原因が考えられます。
演算子の前のレジスタがセグメント レジスタではありません。
演算子の前のレジスタがオペランドの唯一のセグメント レジスタではありません。
セグメント オーバーライド演算子が、間接演算子 (ブラケット) 内にあります。
セグメント オーバーライド演算子の後の式が、即値オペランドまたはメモリ オペランドではありません。
次の例では警告 C2422 が生成されます。
// C2422.cpp
// processor: x86
int main() {
_asm {
mov AX, [BX:ES] // C2422
mov AX, ES // OK
}
}