并发(三) - 汇编 - 8086CPU 栈


栈的两个基本操作:入栈 和 出栈。

栈的操作规则:LIFO(Last In First Out,后进先出)。

SS 和 SP 在任意时刻,指向栈顶元素。

push指令和pop指令的执行过程

push指令(入栈)

  1. SP = SP - 2,SS:SP指向当前栈顶前面的单元,以当前栈顶前面的单元为新的栈顶;
  2. 将指令后跟的寄存器内容或内存单元里存放的信息送入SS:SP指向的内存单元处,SS:SP此时指向新栈顶。

pop指令(出栈)

  1. 将SS:SP指向的内存单元处的数据送入指定的寄存器或内存单元中;
  2. SP = SP + 2,SS:SP指向当前栈顶下面的单元,以当前栈顶下面的单元为新的栈顶。

参考资料

《汇编语言》 王爽著