arm堆栈操作-u球体育app下载

嵌入式 > 嵌入式开发 > 详情

arm堆栈操作

发布时间:2025-07-14 发布时间:
|
arm堆栈的组织结构是 满栈降 的形式,满栈即sp是要停留在最后一个进栈元素,降:就是堆栈的增长方向是从高地址向低地址发展。

arm对于堆栈的操作一般采用 ldmfd(pop)和stmfd (push) 两个命令。

以前困惑的就是stmfd 命令 对于操作数 是按照什么顺序压栈的

比如:stmfd sp!{r0-r5,lr} 进栈顺序是:

高地址(1方式)

lr

r5

r4

```````

r0

低地址

还是:

高地址(2方式)

r0

r1

```

r5

lr

低地址

现在通过下表,可以轻松的解决这个问题:

寻址方式说明pop=ldmpush=stm
fa递增满ldmfaldmdastmfastmib
fd递减满ldmfdldmiastmfdstmdb
ea递增空ldmealdmdbstmeastmia
ed递减空ldmedldmibstmedstmda

按照图表,可知 stmfd对应的是stmdb,根据arm指令手册,可知stmdb入栈顺序是(1方式)

而ldmfd对应的是ldmia,这样这两个操作就可以成功配对



『本文转载自网络,u球体育app下载的版权归原作者所有,如有侵权请联系删除』

热门文章 更多
intel 独立显卡iris xe max亮相.性能超越mx450
网站地图