这段时间在弄一个虚拟机 需要解析x86指令 翻看指令手册发现关于push的一个东西
push esp 指令在8086和286以上的cpu上执行不一样。在8086上,是先把sp-2 再push。
而在286往上,就是先push 再esp-X
而pop esp呢 没有这个说法


从8086开始 先增sp 再弹出来
另外 中断也值得注意。在执行pop esp的时候,是先扫描中断,再执行,执行过程一气呵成。而一般的指令是先执行,最后阶段再扫描中断。
最后值得注意的是pop 到内存地址的时候,如果该内存地址以esp作为基址 则先增esp,再以这个新esp作为基址来计算。
这种情况也有特例,在esp被弹成0的16位栈情况,这个内存地址如何计算 依赖于处理器型号族。