您的位置 首页 报告

多寄存器加载/存储指令的8种形式

多寄存器加载存储指令的8种模式如下表所示,右边四种为堆栈操作、左边四种为数据传送操作。模式说明模式说明IA每次传送后地址加4F

多寄存器加载/存储指令8种方法如下表所示,右边四种为仓库操作、左面四种为数据传送操作。
方法 阐明方法 阐明
IA 每次传送后地址加4 FD 满递减仓库
IB 每次传送前地址加4 ED 空递减仓库
DA 每次传送后地址减4 FA 满递加仓库
DB 每次传送前地址减4 EA 空递加仓库
数据块传送操作 仓库操作
进行数据仿制时,先设置好源数据指针和方针指针,然后运用块复制寻址指令LDMIA/STMIA、LDMIB/STMIB、LDMDA/STMDA、LDMDB/STMDB进行读取和存储。
进行仓库操作操作时,要先设置仓库指针(SP),然后运用仓库寻址指令STMFD/LDMFD 、STMED/LDMED、STMFA/LDMFA和STMEA/LDMEA完成仓库操作。

当仓库指针指向最终压入仓库的数据时,称为满仓库(Full Stack);

当仓库指针指向下一个即将放入数据的空方位时,称为空仓库(Empty Stack)。

一起,依据仓库的生成方法,又能够分为递加仓库(Ascending Stack)和递减仓库(DecendingStack)。

当仓库由低地址向高地址生成时,称为递加仓库,当仓库由高地址向低地址生成时,称为递减仓库。

这样就有四种类型的仓库工作方法,ARM 微处理器支撑这四种类型的仓库工作方法,

即:

◎ Full descending 满递减仓库——FD 仓库首部是高地址,仓库向低地址增加。栈指针总是指向仓库最终一个元素(最终一个元素是最终压入的数据)。 ARM-Thumb进程调用规范和ARM、Thumb C/C++ 编译器总是运用Full descending 类型仓库。

◎ Full ascending 满递加仓库——FA 仓库首部是低地址,仓库向高地址增加。栈指针总是指向仓库最终一个元素(最终一个元素是最终压入的数据)。

◎ Empty descending 空递减仓库——ED 仓库首部是高地址,仓库向低地址增加。栈指针总是指向下一个即将放入数据的空方位。

◎ Empty ascending 空递加仓库——EA 仓库首部是低地址,仓库向高地址增加。栈指针总是指向下一个即将放入数据的空方位。

在ARM中,一般是满仓库,仓库成长方向是从上向下递减的(51相反为递加),在操作系统的一向进程中,与CPU相关部分的一向肯定会涉及到仓库成长方向的界说。

在ARM中咱们界说如下:

#define OS_STK_GROWTH 1 //从上向下递减 UCOS51中相同的界说如下:

#define OS_STK_GROWTH 0 //从下向上递加

arm仓库的安排结构是 满栈降 的方法,满栈即sp是要停留在最终一个进栈元素,降:便是仓库的增加方向是从高地址向低地址开展。 arm关于仓库的操作一般选用 LDMFD(pop)和STMFD (push) 两个指令。 曾经困惑的便是STMFD 指令 关于操作数是依照什么次序压栈的

比方:STMFD sp!{R0-R5,LR} 进栈次序是:

高地址(1方法) LR R5 R4 “““` R0 <-sp 低地址

高地址(2方法) R0 R1 “` R5 LR <-sp 低地址

现在经过下表,能够轻松的处理这个问题:
寻址方法 阐明 pop =LDM push =STM
FA 递加满 LDMFA LDMDA STMFA STMIB
FD 递减满 LDMFD LDMIA STMFD STMDB
EA 递加空 LDMEA LDMDB STMEA STMIA
ED 递减空 LDMED LDMIB STMED STMDA

能够轻松的处理这个问题: 寻址方法阐明 pop =LDM push =STM FA 递加满 LDMFA LDMDA STMFA STMIB FD 递减满 LDMFD LDMIA STMFD STMDB EA 递加空 LDMEA LDMDB STMEA STMIA ED 递减空 LDMED LDMIB STMED STMDA 依照图表,可知 STMFD对应的是STMDB,依据arm指令手册,可知STMDB入栈次序是(1方法)而LDMFD对应的是LDMIA,这样这两个操作就能够成功配对:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/261566.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部