栈是一种线性表,他的特征是“先进后出”、“后进先出”,他的栈的指针(SP)永远是指向栈顶的,即压栈的位置。

    栈是一种数据结构,而计算机内有其专用的寄存器,也就是说,建立栈、入栈、出栈依然是寄存器操作

    栈的作用是保存上下文,延伸开说可以是(存中断断点、保存子程序调用返回点、保存CPU现场数据等,也用于程序间传递参数),在ARM中我们常用的从汇编到C的调用,也就是保存之前的寄存器数据(比如:临时变量),当执行C语言程序时,计时r0、r1等等寄存器的数值被刷新,当重新回到调用处仍然能复原

    栈可以用来保存临时变量

    对于上下文操作(调用子程序),在栈这种情况下,CPU是怎样一个顺序执行的不清楚。

    附图(同C常见内存分布图,暂时保存)

原文地址:https://www.cnblogs.com/orangeJuice/p/5880456.html