ARM汇编:多寄存器指令LOAD/STORE指令(LDM/STM )

如题所述

第1个回答  2022-07-05
LDM/STM分为两组:

看一下助记符的具体含义:
LDM/STM :
M 应该是多(Multi)的意思, LD / ST 分别对应load和store,那么 LDM/STM 应该可以理解为多寄存器的load/store操作指令。

IA 、 IB 、 DA 、 DB 、 FA 、 FD 、 EA 、 ED 的含义可以参考下面的说明:

作用:
将[R4]和[R4+4]分别存入R0和R1寄存器。

A / D 是标识堆栈增长的方向。
A 表示正增长(低地址往高地址增长)。
D 表示负增长(高地址往低地址增长)。

F / E 是标识是指向栈顶还是栈底。

在ARM中, STMFD SP! 就等同于 PUSH , LDMFD SP! 就等同于 POP 。
例如,

作用:
将lr,r3,r2,r1,r0按顺序入栈,SP = SP - 4*5;
相似回答
大家正在搜