编译器错误 C2431

“identifier”中的非法索引寄存器

ESP 寄存器是缩放的,或用作索引寄存器和基寄存器。 x86 处理器的 SIB 编码也不允许。

以下示例生成 C2431:

// C2431.cpp
// processor: x86
int main() {
   _asm mov ax, [ESI + 2*ESP]   // C2431
   _asm mov ax, [esp + esp]   // C2431
}