微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 对ARM堆栈的理解

对ARM堆栈的理解

时间:11-24 来源:互联网 点击:
堆栈其实就是内存中的一段连续空间,只是有了堆栈指针,所以显得比较特别,堆栈一般分为两种:

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

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

对于堆栈来说,可以进行插入或者删除操作的一端称为栈顶,相应的,另一端称为栈底,由于堆栈只允许在一端进行操作,因而按照后进先出的原理进行运作。堆栈指针指向最后一个压入堆栈的有效数据项。

为什么说“向上生长或向下生长”呢,这是一个习惯的问题,一般画堆栈示意图,习惯上把低地址画在下面,高地址画在上面,如下图所示:

ARM中,虽然对两种方式的堆栈均支持,但是一般程序编译器仅支持一种方式,即从上往下生长,满足满递减的方式(堆栈通过减小存储器的地址向下增长,堆栈指针指向含有有效数据项的最低地址),所以一般会使用LDMFD,STMFD等指令。

上一篇:ARM·MMU
下一篇:单片机上的RS485接口

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top