您的位置 首页 基础

仓库指针寄存器 SP 详解

堆栈是一种具有后进先出(LIFO—LastInFirstOut)特殊访问属性的存储结构。堆栈一般使用RAM物理资源作为存储体,再加上LIFO访问

仓库是一种具有“后进先出”(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 也能够用做通用数据寄存器。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/258495.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部