堆栈
是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表。
允许插入或删除操作的一端称为 栈顶 ,另一端称为 栈底 ,对堆栈的插入和删除操作被称 入栈 和 出栈 。
有一组CPU指令可以实现对进程的内存实现堆栈访问。其中, POP 指令实现 出栈 操作, PUSH 指令实现 入栈 操作。
CPU的 ESP 寄存器存放 当前线程的栈顶指针 ,
EBP 寄存器中保存 当前线程的栈底指针 。
CPU的 EIP 寄存器存放 下一个CPU指令存放的内存地址 ,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行。
允许插入或删除操作的一端称为 栈顶 ,另一端称为 栈底 ,对堆栈的插入和删除操作被称 入栈 和 出栈 。
有一组CPU指令可以实现对进程的内存实现堆栈访问。其中, POP 指令实现 出栈 操作, PUSH 指令实现 入栈 操作。
CPU的 ESP 寄存器存放 当前线程的栈顶指针 ,
EBP 寄存器中保存 当前线程的栈底指针 。
CPU的 EIP 寄存器存放 下一个CPU指令存放的内存地址 ,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行。