寻址方式是针对源操作数来说的
6.1 立即数寻址
源操作数是立即数
立即数:操作码以 # 号开头的数字为立即数
立即数寻址: MOV R0, #0x300
伪指令: LDR R0,=0x12345678
注意:
立即数是 8 位数据存储,用 X 表示(0~255),4 位存移位的次数,用 Y 表示(0~15),立即数 = X 循环右移 2 * Y 个位
立即数 0xf200 是由 0xcf2 间接表示的,即是由 8 位的 F2 循环右移 24 位(2 * 12)得到 X = 0xf2; Y = 0xC
6.2 寄存器寻址
MOV R0,R1
源操作数是 寄存器
6.3 寄存器移位寻址
将寄存器寻址的源操作数进行移位
MOV R0, R2, LSL, #3
将 R2 左移 3 位后,赋值给 R0
6.4 寄存器间接寻址
ARM 中由 L/S 结构,即 load/store
LOAD 是将内存的数据载入到寄存器中
STROE 是将寄存器中的数据存储到内存中
指令:
LDR R0,{R1} 把 {R1} 中的值取出来放入到 R0 中
STR R0,{R1} 把 R0 中的值取出来放入到 R1 中
{R1} 表示取 R1 存放的地址中的数据,换成 C 语言,即 *R1
1 MOV R1, #0x40000000
2 LDR R0, {R1}
3 STR R0, {R1}
4
5 //若 R1 中的数据 0x40000000 所代表的数据是 0x55,则 R0 的值为 0x55
6.5 基址变址寻址
MOV R0, #44
MOV R1, #0x40000008
STR R0, [R1, #-4]
[R1, #-4] 的意思是将 R1 存储的地址值 - 4
#-4 表示偏移量
STR R0, [R1, #-4]!
! 表示回写,即 C 语言中的 i--,上一句则先把 R1 的地址值赋值到 R0 中,再将 R0 中的值 - 4
上一句相当于 STR R0,[R1], #-4
6.6 多寄存器寻址
STMIA R0!, {R1 - R3, R5}
将 R1 R2 R3 R5 中的值,存放在以 R0 为起使的地址空间中
大括号中的内容表示寄存器中的值,R0 对应的是存储器的地址
STM: 操作多个存储器的值
对应的命令是 LDMIA
I/D(increase/decrease) A/B(after/before)
6.7 堆栈寻址
进行栈的操作,栈的寄存器是 R13,即 SP 寄存器
STMFD SP!, {R1-R3} 压栈,寄存器号大的先入栈,与书写顺序没关系
LDMFD SP!, {R1-R3} 出栈
组合: F(FULL)/E(EMPTY) I/D
一般都写成 FD,因为 ARM 的地址空间是满递减的
满堆栈:堆栈指针指向最后压入的有效数据项
空堆栈:堆栈指针指向下一个待压入数据的空位置
MOV SP, #0x40000010
STMFD SP!, {R1-R4}
即将 R4 R3 R2 R1 的值存入 0x4000000c 0x40000008 0x40000004 0x40000000
6.8 相对寻址
51 中用的 jmp 和 call 指令
相对寻址就是一个跳转,相对寻址是相对于 PC 而言的,跳转指令:B BL BLX BX
B:跳转指令
BL:带返回的跳转指令
BLX:带返回和状态切换的跳转指令
BX:带状态切换的跳转指令
上一篇:七、ARM 指令集
下一篇:五、精简指令集和复杂指令集指令格式
推荐阅读最新更新时间:2024-11-16 19:47
设计资源 培训 开发板 精华推荐
- AD8341-EVALZ,基于 AD8341 1.5 至 2.4 GHz 射频矢量调制器的评估板
- 使用 ON Semiconductor 的 CAT871-10ULGT3 的参考设计
- 使用 MaxLinear, Inc 的 SPX385AM1-1.2/TR 的参考设计
- LT6656ACDC-2.048、2.048V 电压基准作为微功率稳压器的典型应用
- 使用 ON Semiconductor 的 NCP1216A 的参考设计
- 用于医疗的 5V ADC 驱动器
- 使用 Analog Devices 的 ADP121 的参考设计
- AM1S-0309SZ 1W DC-DC转换器典型应用
- OP113ESZ 5V Only 18 位立体声运算放大器 DAC 的典型应用
- LT1777,具有成本效益的电源从 10V28V 输入产生 5V
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
- 千丘智能侍淳博:用数字疗法,点亮“孤独症”儿童的光
- 数药智能冯尚:ADHD数字疗法正为儿童“多动症”提供更有效便捷服务
- Vicor高性能电源模块助力低空航空电子设备和 EVTOL的发展