ARM System Developer's Guide 学习笔记 3.3 访存指令
访存指令
访存指令用于数据在存储器和处理器寄存器之间传递。有三种访存指令:单寄存器传输指令、多寄存器传输指令,交换指令。
1. 单寄存器传输指令
- 概念:这些指令用于将单数据移入和移出寄存器。数据类型支持有符号和无符号字长(32-bits),半字长(16-bits)和字节。
- 常用的单寄存器传输指令 及其 语法
其中:
addressing1(数据类型是word, unsigned byte)可用桶形移位器-比例因子是2的倍数;
addressing2(数据类型是半字,有符号半字,有符号字节,以及双字)。
- LDR,STR 指令
LDR只在存储器加载32-bit字长地址,4字节的倍数-0,4,8…。
示例1.1
以下示例为从寄存器r1中包含的内存地址进行加载,然后将存储返回到存储器中的相同地址。
寄存器r1:
第一条指令:加载寄存器r1指向的内存地址的内容到寄存器r0。
目标寄存器r0:
第二条指令:存储寄存器r0的内容到寄存器r1指向的内存地址。
r1 的偏移为0,寄存器r1为基地址寄存器。
单寄存器寻址模式
ARM指令集提供了不同的寻址模式。这些模式结合了索引方法:带写回的预索引,预索引和后索引。
索引方法如下表所示:
示例1.2:
- 带写回的预索引
通过基寄存器地