首先需要说明的是栈属于满递减棧即栈顶在高地址,栈底在低地址
pop,指针向高处走我要提取处的数据。那么pop之前sp=0002。先读取后sp+2
也就是说 sp 始终指向了有效数据的位置。
┅. 栈的执行过程下图:
SS:存放栈的段地址;
SP:存放栈的偏移地址;
3. 栈是空的是什么意思?
2. 把数据送入新的栈顶.
三. POP的操作过程
POP的过程就是与PUSH相反了
1. 把栈頂数据(SS:SP指向的数据)送入寄存器
四. 栈的越界问题需要我们自己小心注意, CPU并没有机制来通知或者避免栈的越界.
PUSH和POP指令可以在寄存器和内存之间傳送数据, 格式如下
PUSH和POP指令实质是一种内存传送指令, 可以灵活运用.