栈的两个基本操作:入栈 和 出栈。
栈的操作规则:LIFO(Last In First Out,后进先出)。
SS 和 SP 在任意时刻,指向栈顶元素。
push指令和pop指令的执行过程
push指令(入栈)
- SP = SP - 2,SS:SP指向当前栈顶前面的单元,以当前栈顶前面的单元为新的栈顶;
- 将指令后跟的寄存器内容或内存单元里存放的信息送入SS:SP指向的内存单元处,SS:SP此时指向新栈顶。
pop指令(出栈)
- 将SS:SP指向的内存单元处的数据送入指定的寄存器或内存单元中;
- SP = SP + 2,SS:SP指向当前栈顶下面的单元,以当前栈顶下面的单元为新的栈顶。
参考资料
《汇编语言》 王爽著
并发(三) - 汇编 - 8086CPU 栈
原文:https://www.cnblogs.com/DJ-Zuan/p/14384711.html