房产频道

当前位置:房产 > 本地新闻 > >正文

堆栈指针寄存器 SP 详解

2021-12-25 18:46:05 来源:网络 编辑:
堆栈是一种具有“后进先出”(LIFO---Last In First Out)特殊访问属性的存储结构。堆

栈一般使用RAM 物理资源作为存储体,再加上LIFO 访问接口实现。

堆栈的实现方法:随机存储器区划出一块区域作为堆栈区,数据可以一个个顺序地存入(压入)到这个区域之中,这个过程称为‘压栈’(push )。通常用一个指针(堆栈指针SP---StackPointer)实现做一次调整,SP总指向最后一个压入堆栈的数据所在的数据单元(栈顶)。从堆栈中读取数据时,按照堆栈 指针指向的堆栈单元读取堆栈数据,这个过程叫做 ‘弹出’(pop ),每弹出一个数据,SP 即向相反方向做一次调整,如此就实现了后进先出的原则。

堆栈是计算机中广泛应用的技术,基于堆栈具有的数据进出LIFO特性,常应用于保存中断断点、保存子程序调用返回点、保存CPU现场数据等,也用于程序间传递参数。ARM处理器中通常将寄存器R13作为堆栈指针(SP)。ARM处理器针对不同的模式,共有 6 个堆栈指针(SP),其中用户模式和系统模式共用一个SP,每种异常模式都有各自专用的R13寄存器(SP)。它们通常指向各模式所对应的专用堆栈,也就是ARM处理器允许用户程序有六个不同的堆栈空间。这些堆栈指针分别为R13、R13_svc、R13_abt、R13_und、R13_irq、R13_fiq,如表2-3堆栈指针寄存器所示。为了更准确地描述堆栈,根据“压栈”操作时堆栈指针的增减方向,将堆栈区分为‘递增堆栈’(SP 向大数值方向变化)和‘递减堆栈’(SP 向小数值方向变化);又根据SP 指针指向的存储单元是否含有堆栈数据,又将堆栈区分为‘满堆栈’(SP 指向单元含有堆栈有效数据)和‘空堆栈’(SP 指向单元不含有堆栈有效数据)。这样两两组合共有四种堆栈方式——满递增、空递增、满递减和空递减。ARM处理器的堆栈操作具有非常大的灵活性,对这四种类型的堆栈都支持。ARM处理器中的R13被用作SP。当不使用堆栈时,R13 也可以用做通用数据寄存器。

标签: 堆栈指针寄存器S

新闻排行

推荐新闻

最便宜5万多就能买一套 乳山白菜价海景小区入住不超10户

跌成白菜价,最便宜5万多就能买一套。近日,山东威海乳山的海景房冷上...

北京商品房销售措施再优化!开发商可为预售证申请延期

时隔两年,北京再度对商品房销售措施进行优化。8月19日,市住建委发布...

各地救市奇招纷纷上演甚至买房“送工作” 下半年家电行业或迎来小阳春?

普通的刺激手段已经不能满足现在的楼市了。各种各样的奇招,开始纷纷...

图说湖湘

前三季度国内生产总值870269亿元 同比增长3.0%比上半年加快0.5个百分点
10家鞋企中有2家企业今年上半年净利润处于增长状态 鞋企表现有喜有忧
291家科创板公司实现营业总收入合计同比增长28.93% 科创板中报业绩有望继续领跑
沪深A股震荡走低 保险、农业板块逆市走强