栈结构:四种栈类型与满递减栈
2026/9/29小于 1 分钟
栈结构:四种栈类型与满递减栈
1. 满、空是什么意思?
看 SP 当前指向哪里:
- 满(Full):SP 指向当前栈顶的有效数据。
- 空(Empty):SP 指向栈顶的空位置。
看 SP 移动方向:
- 递减(Descending):SP 向低地址移动。
- 递增(Ascending):SP 向高地址移动。
因此组合出四种栈:
| 类型 | SP 指向 | 入栈方向 |
|---|---|---|
| 满递减 | 有效数据 | 低地址 |
| 满递增 | 有效数据 | 高地址 |
| 空递减 | 空位置 | 低地址 |
| 空递增 | 空位置 | 高地址 |
2. Cortex-M

Cortex-M 使用:
满递减栈(Full Descending)
例如:
PUSH {r0}可以理解为:
SP = SP - 4
[SP] = r0即:
SP → 栈顶有效数据
SP ↓ 向低地址增长对应:
STMDB SP!, {...}其中:
DB = Decrement Before3. 一句话记忆
满/空看 SP 指哪里,递增/递减看 SP 往哪走。
Cortex-M:
满 + 递减 = 满递减栈
