打印
[MCU]

单片机堆栈的基本原理解析

[复制链接]
473|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

        向上生长:向高地址方向生长,称为递增堆栈

        向下生长:向低地址方向生长,称为递减堆栈

        堆栈指针指向最后压入堆栈的有效数据项,称为满堆栈;堆栈指向下一个要放入的空位置,称为空堆栈;有四种类型的堆栈表示递增和递减的满堆栈和空堆栈的各种组合。

       

        满递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA,STMFA等。

        空递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈的第一个空位置。指令如LDMEA,SRMEA等。

        满递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有数据项的最低地址。指令如LDMFD,STMFD等。

        空递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向堆栈下的第一个空位置。指令如LDMED,STMED等。

        armrisc的机器没有自己的push pop 指令,通常使用stm LDM指令完成压入弹出操作。

        arm的使用r13=sp ,r14=lR ,r15=pc

使用特权

评论回复

相关帖子

沙发
youtome| | 2020-9-3 22:10 | 只看该作者
堆栈是存储器中的特殊群体。   

使用特权

评论回复
板凳
lzbf| | 2020-9-3 22:10 | 只看该作者
堆栈其实是一种数据结构,存入数据不需要地址  

使用特权

评论回复
地板
backlugin| | 2020-9-3 22:10 | 只看该作者
堆栈区在那里?低128还是高128字节单元?

使用特权

评论回复
5
backlugin| | 2020-9-3 22:12 | 只看该作者
单片机中堆栈的作用  

使用特权

评论回复
6
kkzz| | 2020-9-3 22:12 | 只看该作者
         

使用特权

评论回复
7
hudi008| | 2020-9-3 22:13 | 只看该作者
单片机的堆栈区只可设置在什么地方  

使用特权

评论回复
8
lzmm| | 2020-9-3 22:13 | 只看该作者
SP的值是怎么变化的啊?  

使用特权

评论回复
9
minzisc| | 2020-9-3 22:13 | 只看该作者
单片机如何知道堆栈溢出?  

使用特权

评论回复
10
selongli| | 2020-9-3 22:13 | 只看该作者
堆栈指针的SP的作用是什么?

使用特权

评论回复
11
fentianyou| | 2020-9-3 22:14 | 只看该作者
C语言如何全部读取和写入堆栈  

使用特权

评论回复
12
xiaoyaodz| | 2020-9-3 22:14 | 只看该作者
单片机中堆栈指令是什么寻址方式

使用特权

评论回复
13
kkzz| | 2020-9-3 22:14 | 只看该作者
谢谢楼主分享的。        

使用特权

评论回复
14
lzbf| | 2020-9-3 22:14 | 只看该作者
只需要PUSH和POP操作就可以实现数据的存储和取出,以先进后出为规则

使用特权

评论回复
15
selongli| | 2020-9-3 22:14 | 只看该作者
单片机的堆栈区应建立在哪  

使用特权

评论回复
16
minzisc| | 2020-9-3 22:14 | 只看该作者
单片机堆栈的最大容量是多少字节?

使用特权

评论回复
17
youtome| | 2020-9-3 22:15 | 只看该作者
在内RAM中专门辟出一个连续存储区,用来暂时存放子程序断口地址、中断断口地址和其他需要保存的数据。

使用特权

评论回复
18
xiaoyaodz| | 2020-9-3 22:15 | 只看该作者
堆栈是内存中一段连续的存储区域,用来保存一些临时数据

使用特权

评论回复
19
fentianyou| | 2020-9-3 22:15 | 只看该作者
单片机的堆栈与通用微机中的堆栈有何不同呢   

使用特权

评论回复
20
lzmm| | 2020-9-3 22:15 | 只看该作者
如何设置堆栈的大小         

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

681

主题

1534

帖子

7

粉丝