Compiler Error C2431

illegal index register in 'identifier'

The ESP register was scaled or used as both the index and base register.

The SIB encoding for the 80386 processor does not allow scaling by ESP or using ESP as both the index and base register.

The following examples cause this error:

_asm mov ax, [ESI+2*ESP]
_asm mov ax, [esp+esp]