cpu.h-栈的宏定义-满减栈

常常两两相对的东西,整一起后有点记不住,就写下来。

cpu.h中有宏定义使用哪种栈。

#define  OS_STK_GROWTH   1    /* Stack grows from HIGH to LOW memory on ARM   */

栈的四种

满栈:"满"字表示栈是满的,没有空位,所以栈指针指向栈的最后一个元素。我们入栈时要先移动SP再存数据,出栈时先取数据SP指针再移动。

空栈:"空"字表示栈是有个空位的。所以栈指针指向栈的最一个元素后面的第一个空位。我们入栈时直接存入数据,再移动SP。出栈时,先移动SP再取出数据。

増栈:"増"字表示往地址较大的方向。所以,栈底在低内存地址处,入栈时候的栈指针SP向内存地址较大的方向移动。

减栈:"减"字即减小,表示往地址较小方向。栈底在高内存地址处,入栈时指针SP向内存底子较小的方向移动。

表格表示:

类型SP指针存数据取数据
满栈SP指向满栈(最后一个元素)先移动再存放直接取数据后移动
空栈SP指向空位(最后元素的后一个空位)直接存放后移动先移动再取
类型栈底栈指针移动方向
増栈低内存地址栈指针移动方向为地址增加方向
减栈高内存地址栈指针移动方向为地址减小方向

在ARM中一般为满减栈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值