push语句算是一个元语(元操作),期间不能被打断,作为CPU的一条指令,它跟实际的处理器指令体系有关系
现在大多的教程对于PUSH的解释都是先移动栈指针,再数据入栈
也有的处理器是先进行数据入栈然后再移动指针的, 而且有的栈是栈向上生长,有的是栈向下生长,所以要根据具体的实际情况来定
根据我的记忆,通常把PUSH操作看成是先移动栈指针,再数据入栈
pushl %esp 和 pushl %ebp的区别:
pushl %ebp这个我就不解释了,pushl %esp这句其实就是push old_esp,入栈以后,得到了new_esp