对ARM堆栈的理解
时间:11-24
来源:互联网
点击:
堆栈其实就是内存中的一段连续空间,只是有了堆栈指针,所以显得比较特别,堆栈一般分为两种:
向上生长:堆栈指针向高地址方向生长,称为递增堆栈。
向下生长:堆栈指针向低地址方向生长,称为递减堆栈。
对于堆栈来说,可以进行插入或者删除操作的一端称为栈顶,相应的,另一端称为栈底,由于堆栈只允许在一端进行操作,因而按照后进先出的原理进行运作。堆栈指针指向最后一个压入堆栈的有效数据项。
为什么说“向上生长或向下生长”呢,这是一个习惯的问题,一般画堆栈示意图,习惯上把低地址画在下面,高地址画在上面,如下图所示:
ARM中,虽然对两种方式的堆栈均支持,但是一般程序编译器仅支持一种方式,即从上往下生长,满足满递减的方式(堆栈通过减小存储器的地址向下增长,堆栈指针指向含有有效数据项的最低地址),所以一般会使用LDMFD,STMFD等指令。
ARM堆栈连续空 相关文章:
- 关于ARM堆栈的一些问题(11-21)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)