本文主要是介绍ARM 编程 LDM 批量数据加载指令——寄存器列表与书写顺序无关,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
格式:
LDM{<cond>}{<type>} <Rn> {!}, <regs> {^}
功能:连续存储单元的字数据→寄存器(多个)
数据单位:字。
用途:一般用于数据块读出、数据出栈。
格式说明:
type 字段种类:8 种。
Rn:基址寄存器,其值是内存单元的起始地址。一般不使用为 R15。
Regs:寄存器列表,从最低序号寄存器开始处理,与书写顺序无关
。
! 后缀:指令执行完毕后,将最后的地址写入基址寄存器。
^ 后缀:当 regs 中不包含 PC 时,该后缀用于指示指令所用的寄存器为用户模式下的寄存器。否则,指示指令执行时,SPSR →CPSR。
寄存器列表:从最低编号寄存器开始处理,与书写顺序无关,高编号寄存器总是在最后
。
寄存器和内存单元的对应关系:
- 编号低的寄存器对应于内存中低地址单元,
- 编号高的寄存器对应于内存中高地址单元。
例如:寄存器列表 {R1,R3,R6} 的内存地址对应关系如下
这篇关于ARM 编程 LDM 批量数据加载指令——寄存器列表与书写顺序无关的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!