
ARM 满减栈在 ARM 体系结构中栈的实现方式由两个维度决定两个维度1. 栈指针指向的位置满栈Full栈指针指向最后一个已压入的有效数据空栈Empty栈指针指向下一个可用的空闲位置2. 栈的增长方向增栈Ascending栈向地址增大的方向增长减栈Descending栈向地址减小的方向增长组合起来共有四种栈类型对应 ARM 的 LDM/STM批量加载/存储指令后缀类型名称描述指令后缀FA满增栈指向最后压入数据向高地址增长STMFA / LDMFAFD满减栈指向最后压入数据向低地址增长STMFD / LDMFDEA空增栈指向下一空闲位置向高地址增长STMEA / LDMEAED空减栈指向下一空闲位置向低地址增长STMED / LDMED满减栈几乎所有遵循 ARM 标准调用约定AAPCS / AAPCS64的架构和状态都统一使用满减栈SP栈指针指向最后一次压栈的数据即满压栈时地址递减出栈时地址递增即减与内存布局习惯一致栈通常从高地址向低地址增长避免与堆冲突