15、ARM架构中的栈与宏的深入解析

ARM架构中的栈与宏的深入解析

1. 栈的增长方式

在ARM架构里,栈依据其在内存中的增长方式进行分类。栈在数据入栈时,既可以向内存地址增大的方向增长(升序栈),也能向内存地址减小的方向增长(降序栈)。这就如同在太空中,“上”和“下”的概念是相对的。打个比方,站在一栋20层空楼的第10层,第10层是唯一的入口,上下每层都有4套公寓。现在来了8个家庭,你可以选择让他们住在往上两层或者往下两层,具体怎么安排就看你的选择了。

从计算机内存的角度来看,升序栈在数据入栈时,栈指针的地址会增大,每入栈一个元素,栈指针的地址就增加4字节;而降序栈在数据入栈时,栈指针的地址会减小。总体而言,ARM架构中有四种类型的栈,具体如下表所示:

后缀 含义
FA 满升序栈
FD 满降序栈
EA 空升序栈
ED 空降序栈

当栈指针指向栈中最后一个已占用的地址时,该栈被称为满栈;当栈指针指向栈中下一个可用的空闲空间时,则称为空栈。需要注意的是,这里的空栈并不意味着栈中没有数据,它只是表示栈中下一个空闲字的状态。

在实际编程中,选择满栈、空栈、升序栈还是降序栈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值