栈在程序中的作用(ARM结构)
来源:互联网 发布:掌上电力老是网络错误 编辑:程序博客网 时间:2024/05/29 02:48
大家肯定学习过了栈这一结构,也知道栈的基本特性,可是栈如何在程序中起作用,特别是C语言中,是不多的。所以今天就来分享一下栈在程序中的作用。
首先读这篇文章之前,读者首先要了解两个基本的概念。
1、根据SP指针指向的位置,栈可以分为满栈和空栈
(1)满栈: 堆栈指针SP总是指向最后压入堆栈的数据。
(2)空栈: 堆栈指针SP总是指向下一个将要放入数据的空位置。
2、根据SP指针移动的方向,栈可以分为升栈和降栈
(1)升栈: 随着数据的入栈,SP指针从低地址——>高地址
(2)降栈: 随着数据的入栈,SP指针从高地址——>低地址
ARM采用的是 满降栈。
下面是一个栈在程序运用中的实例
第一排为源代码,第二排为汇编代码,第三排为注释
1.主函数
2 子函数
总结: 从以上实例看出,栈在程序中作用有传递参数,保存寄存器的值和保存局部变量。 在传递参数的过程中,如果传递参数少于四个,则直接用寄存器传递。若传递参数多于四个,则使用寄存器+内存传递。
大家可以把SP指针和FP指针的移动结合内存示意图来更好理解栈在程序的应用。
1 0
- 栈在程序中的作用(ARM结构)
- 浅谈MMU在arm中的作用
- 接口 在 程序中的作用
- XML在程序开发中的作用
- 结构在C程序中的应用
- 三层结构在JAVA项目开发中的作用
- Service层在J2EE分层结构中的作用
- Linux中#和%号在参数替换结构中的作用
- Linux中#和%号在参数替换结构中的作用
- Service层在J2EE分层结构中的作用
- Service层在J2EE分层结构中的作用
- ARM中的程序状态寄存器(CPSR)
- ARM中的程序状态寄存器(CPSR)
- ARM中的程序状态寄存器(CPSR)
- ARM中的程序状态寄存器(CPSR)
- ARM中的程序状态寄存器(CPSR)
- ARM中的程序状态寄存器(CPSR)
- 通俗解析IRP和I/O设备栈在内核程序中的作用(转自看雪)
- Chipmunk碰撞回调短时间内重入的解决办法
- autolayout
- 为什么一些机器学习模型需要对数据进行归一化?
- Redis监控方案
- PaaS初步探究
- 栈在程序中的作用(ARM结构)
- ThinkPHP框架中解决无法加载控制器的问题—原因之一
- Java生成MD5算法
- hdu 3500 Fling (DFS+方法)
- STM32 malloc HardFault
- 常用基本linux命令
- 高斯滤波器
- 探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 - 聚类
- PL\SQL如何将从一张表中选出的数据插入到另一张表中