push eax指令可以将寄存器的值存储到内存中。 push指令有两个输出:首先是ESP-=4(寄存器),然后是[ESP]=eax(内存地址)。我想你可以在表格中将这两个输出合并到一行中。 这就是为什么序列中包含LEA以提前设置ESP的原因:正常代码不会这样做,但是此赋值需要已知ESP的数值。 你的第二个错误出现在sub edx, ebx指令中。EDX由前一个指令清零,但EBX仍为0x200。sub执行无符号/二进制补码减法,会产生回绕,而不是饱和到零。请在调试器或使用uint32_t进行C语言编写时尝试。