Compartilhar via


Erro do compilador C2422

substituição de segmento ilegal em 'operand'

O código de assembly embutido usa incorretamente um operador de substituição de segmento (dois pontos) em um operando. As possíveis causas incluem:

  • O registro que precede o operador não é um registro de segmento.

  • O registro que precede o operador não é o único registro de segmento no operando.

  • O operador de substituição de segmento aparece em um operador de indireção (colchetes).

  • A expressão que vem após o operador de substituição de segmento não é um operando imediato nem um operando de memória.

O seguinte exemplo gera o erro C2422:

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