1.堆栈
1)就是一块内存,操作系统在启动时就分配好的,供程序执行使用
2)跟数据堆栈无关
ESP栈指针寄存器 纪录当前堆栈用到哪
从大地址向小地址用
2堆栈使用
1.存储中间值
2.指令
PUSH
<1>向堆栈中压人数据
<2>修改栈指针ESP寄存器
格式:
PUSH 立即数
PUSH 寄存器
push 内存
2.pop
指令相当于一个MOV 一个AND
<1>把栈顶数据存到寄存器/内存中
<2>修改栈顶指针ESP寄存器
3.修改EIP相关指令
EIP中的值是cpu下一次执行的地址
1.指令
1)JMP修改EIP
JMP 立即数/寄存器/内存
2)CALL
与JMP区别把当前地址压到堆栈中
3)RETN
把栈顶里边的值放到EIP中 栈顶值加4