语法:
ldm{条件}{寻址方式} 基址寄存器{!} 目的寄存器列表
参数:
- {条件} 可选项
- {寻址方式} 可选项
可参见: https://www.softool.cn/read/arm_assembly/iaibdadb.html- 基址寄存器 作为被复制数据的源
- {!} 可选项
如果有该感叹号,则在指令被执行之后,将 pc 的地址更新给基址寄存器;
如果无该感叹号,则基址寄存器的值不发生变化;- 目的寄存器列表
数据复制方向:
功能:
将 基址寄存器 记录地址附近的数据 复制到 目的寄存器列表 中;
示例:
假设下面 SMRDATA 标号的地址为 0x32000360
adr r13, SMRDATA
;//执行动作分解: 向前走(递增地址来完成复制数据)
;//先将 基址寄存器 记录的地址 0x32000360 复制给 pc
;//
;//pc 将 0x32000360 地址的数据先复制给 r0
;//pc = pc + 4 = 0x32000364
;//pc 将 0x32000364 地址的数据先复制给 r1
;//pc = pc + 4 = 0x32000368
;//pc 将 0x32000368 地址的数据先复制给 r2
;//pc = pc + 4 = 0x3200036C
;//此时的 pc 的地址不会更新给 r13, 所以 r13 的地址依然为 0x32000360
ldmia r13, {r0-r2}