概念:栈的本质就是一段内存,程序运行时用于保存一些临时数据
如局部变量、函数的参数、返回值、以及程序跳转时需要保护的寄存器等
分类:
增栈:SP指针往高地址移动
减栈:SP指针往低地址移动
满栈:
空栈:
栈的分类
增栈 :压栈时栈指针越来越大,出栈时栈指针越来越小
减栈:压栈时栈指针越来越大,出栈时栈指针越来越小
满栈:栈指针指向最后一次压入到栈中的数据,压栈时需要先移动栈指针到相邻位置然后再压栈
空栈:栈指针指向最后一次压入到栈中的数据的相邻位置,压栈时可直接压栈,之后需要将栈指针移动到相邻位置
ARM处理器一般使用满减栈
STMIA:空增EA
STMIB:满增ED
STMDA:空减FA
STMDB:满减FD LDMIA
STMFD/LDMFD 等来操作栈