Erro do compilador C2431
registro de índice inválido em 'identifier'
O registro ESP é dimensionado ou usado tanto como índice quanto registro base. A codificação SIB para o processador x86 não permite nenhum dos dois casos.
O seguinte exemplo gera o erro C2431:
// C2431.cpp
// processor: x86
int main() {
_asm mov ax, [ESI + 2*ESP] // C2431
_asm mov ax, [esp + esp] // C2431
}