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
}
}