Partager via


Erreur du compilateur C2422

remplacement de segment illégal dans l’opérande

Le code d’assembly inline utilise incorrectement un opérateur de remplacement de segment (deux-points) sur un opérande. Les causes possibles sont les suivantes :

  • Le registre précédent l’opérateur n’est pas un registre de segments.

  • Le registre précédant l’opérateur n’est pas le seul registre de segments dans l’opérande.

  • L’opérateur de remplacement de segment apparaît dans un opérateur indirection (crochets).

  • L’expression qui suit l’opérateur de remplacement de segment n’est pas un opérande immédiat ou un opérande de mémoire.

L’exemple suivant génère l’erreur C2422 :

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