ARM -- 栈

描述

在arm架构中 ,SP(R13) 寄存器是用于栈指针,它始终指向栈 顶部。大多数的处理器架构都有栈寄存器,以及有专门的指令来操作该寄存器。
下面我们就看看栈的原理是什么,为什么需要栈以及在实际程序中起到了怎么作用。

1、概念

栈(stack)是一个只能单向操作的数据表,最先进去的数据端是栈底,最后进入的数据端是栈顶。如下图:
ARM -- 栈_第1张图片

2、进栈和出栈

栈就像个一端被封闭起来的管子,在里面依次放入珠子。当要取出时,只有上面的珠子被取出后才能获取到下面的珠子,所以有着后进先出(Last In First Out)的原则。

进栈

ARM -- 栈_第2张图片

出栈

ARM -- 栈_第3张图片

当一个栈中没有数据时,栈的最底部即是栈顶也是栈底,当有数据入栈后,栈底不动,栈顶向上移动。

你可能感兴趣的:(arm,linux,从入门到精通,arm开发,linux)