-
栈:数据始终采用先进后出的特点。
-
8086CPU提供入栈和出栈指令,基本操作:PUSH(入栈)和POP(出栈)操作。
-
在8086CPU中,有两个寄存器,段寄存器SS和寄存器SP;
- SS: 存放栈顶的段地址。
- SP:存放栈顶的偏移地址。
-
PUSH指令(入栈): SP = SP - 2 // SS此时指向新栈顶
-
POP指令(出栈): SP = SP + 2
-
例:
mov ax,1000H
mov ss,ax
mov sp,0010H
- 物理逻辑:
根据SP的变化,决定数据栈的更改。
将1000H—100FH这段内存当作栈来使用,此时栈为空。
- 对栈超界问题: 存在两种超出情况:
- 底超出
- 顶超出
- 注:该超界问题无法被机制控制,只能有操作者自身控制。