资料
  • 资料
  • 专题
ARM的堆栈学习笔记
推荐星级:
类别: 消费电子
时间:2020-01-16
大小:27KB
阅读数:212
上传用户:quw431979_163.com
查看他发布的资源
下载次数
0
所需E币
3
ebi
新用户注册即送 300 E币
更多E币赚取方法,请查看
close
资料介绍
ARM 的堆栈学习笔记 [pic] ARM 的堆栈学习笔记 以下是我在学习ARM指令中记录的关于堆栈方面的知识: 1、寄存器 R13 在 ARM 指令中常用作堆栈指针 2、对于 R13 寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另 外5个物理寄存器对应于其他5种不同的运行模式。采用以下的记号来区分不同的物理寄 存器: R13_ 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。 3、寄存器R13在ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他 的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈 指针。由于处理器的每种运行模式均有自己独立的物理寄存器R13,在用户应用程序的初 始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间,这样,当 程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的堆栈,而当程序 从异常模式返回时,则从对应的堆栈中恢复,采用这种方式可以保证异常发生后程序的 正常执行。 4、有四种类型的堆栈: 堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆 栈指针总是指向栈顶。 当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack)。 同时,根据堆栈的生成方式,又可以分为递增堆栈(Ascending Stack)和递减堆栈(Decending……
版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或 联系我们 删除。
相关评论 (下载后评价送E币 我要评论)
没有更多评论了
  • 可能感兴趣
  • 关注本资料的网友还下载了
  • 技术白皮书