当前位置:首页 > 单片机 > 单片机
[导读] 以下是我在学习ARM指令中记录的关于堆栈方面的知识:1、寄存器 R13 在 ARM 指令中常用作堆栈指针2、对于 R13 寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应

 以下是我在学习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)和递减堆栈(DecendingStack),当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址生成时,称为递减堆栈。这样就有四种类型的堆栈工作方式,ARM 微处理器支持这四种类型的堆栈工作方式,即:

◎ Full descending 满递减堆栈

堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。

ARM-Thumb过程调用标准和ARM、Thumb C/C++ 编译器总是使用Full descending 类型堆栈。

◎ Full ascending 满递增堆栈

堆栈首部是低地址,堆栈向高地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。

◎ Empty descending 空递减堆栈

堆栈首部是低地址,堆栈向高地址增长。栈指针总是指向下一个将要放入数据的空位置。

◎ Empty ascending 空递增堆栈

堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向下一个将要放入数据的空位置。

5、操作堆栈的汇编指令堆栈类型 入栈指令 出栈指令

Full descending STMFD (STMDB) LDMFD (LDMIA)

Full ascending STMFA (STMIB) LDMFA (LDMDA)

Empty descending STMED (STMDA) LDMED (LDMIB)

Empty ascending STMEA (STMIA) LDMEA (LDMDB)

例子:

STMFD r13!, {r0-r5} ; Push onto a Full Descending Stack

LDMFD r13!, {r0-r5} ; Pop from a Full Descending Stack.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

德国康佳特亮相上海工博会,展示多款应用就绪的嵌入式解决方案平台

关键字: 嵌入式 传感器 处理器

9月10日消息,在最近的高盛Communacopia +科技大会上,Intel副总裁John Pitzer透露了Intel在x86和IFS计划方面的一些新细节。

关键字: Intel 处理器

在当今的高性能计算领域,确保处理器、存储和加速器之间快速可靠的通信对系统性能和可扩展性至关重要。因此,就诞生了Compute Express Link®(CXL®)标准:其目标是实现一致的内存访问、低延迟的数据传输,以及...

关键字: 芯片设计 处理器 加速器

9月9日消息,Intel宣布了一系列重大人事调整,涉及数据中心事业部(DCG)、客户端计算事业部(CCG)以及新成立的中央工程事业部(CEG)。

关键字: Intel 处理器

在半导体行业的风云变幻中,英特尔公司近来可谓麻烦不断。

关键字: 英特尔 半导体 处理器

9月2日消息,Intel近日坦承,自家高端桌面CPU竞争力不如AMD的锐龙9000系列,但强调Panther Lake系列将按计划在今年内上市,同时下一代Nova Lake将全力反击。

关键字: Intel 处理器

8月26日消息,据报道,美国政府不仅通过股权投资Intel,还积极协助其在美国本土生产先进芯片,包括主动联系潜在主要客户,以提振其晶圆代工业务。

关键字: Intel 处理器

多数受访粉丝认为,AI驱动的功能会对他们观看体育赛事的方式产生重大影响 超过半数的受访者希望通过AI技术获得对过去、现在和未来体育赛事的评论和分析 移动体育应用...

关键字: IBM AI 应用程序 移动
关闭