LDR/STR

LDR内存 ------>寄存器;

STR寄存器------>内存;

  • LDR r0,=label :用于加载立即数或一个地址值到指定寄存器中
    • 如果Labbel 是立即数:LDR r0,=0x123 :将0x123存入r0中
    • 如果name是个标符:LDR r0,=label_1 :将label_1所指向的地址存入r0中

这是一条伪指令:表示把一个地址写到某寄存器中

如:ldr r0,=0x12345678 表示把0x12345678 这个地址写入到r0中了。因此,ldr伪指令和mov指令比较类似。只是mov指令限制了立即数的长度为8位,即不能超过512。而ldr伪指令没有这个限制。如果使用ldr伪指令时,后面跟的立即数没有超过8位,那么在实际汇编的时候该ldr伪指令是被转换为mov指令的。

LDR r0,r1 将r1中的值存到r0中

LDR r1,r2,#16 将(r2+16)地址中的内容存到r1中

LDR r1,r2,#4 将r2地址中的内容存到r1中,同时r2=r2+4

STR r1,r2, 将r1中的值存到r2所指定的地址中

STR r1,r2,#4 将r1中的值存到r2+4所指定的地址中

STR r1,r2,#4 将r1的值存到r2中,同时r2=r2+4

ARM状态:

  • 32位,ARM状态执行字对齐的32位ARM指令。

  • Thumb状态,16位,执行半字对齐的16位指令。

  • 用Bx Rn指令来进行两种状态的切换:

    • 从 ARM 到 Thumb: LDR R0,=lable+1 BX R0(状态将寄存器的最低位设置为 1,BX 指令、R0 指令将进入 thumb 状态);
    • 从 Thumb 到 ARM : LDR R0,=lable BX R0(寄存器最低位设置为 0,BX 指令、R0 指令将进入 arm 状态)。
  • 当处理器进行异常处理时,则从异常向量地址开始执行,将自动进入 ARM 状态。

相关推荐
2601_9611462022 分钟前
实验室等离子表面处理设备安全整改记录:通风、UV、接地三项
笔记·安全·uv
ACP广源盛139246256731 小时前
高速 USB 切换方案选型笔记:10Gbps 全通道同步开关 LH6828@ACP 评估
笔记·硬件架构·国产芯片
sbjdhjd11 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
海绵宝宝的月光宝盒14 小时前
14-AutoCAD-阵列命令应用与案例实战(AR)
经验分享·笔记·自动化·课程设计·制造·学习方法·cad
白山编程大哥15 小时前
接口幂等性是什么?如何设计?
笔记
ACP广源盛1392462567315 小时前
6 盘位存储扩展方案选型笔记:YLB3116 @ACP评估记录
笔记·硬件架构·硬件工程·国产芯片
小李不想当小白15 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
weixin_4481199418 小时前
Datawhale Jev Cookbook 202610 笔记3
笔记
姚瑞南18 小时前
【PRD】招投标商机雷达爬虫系统
人工智能·经验分享·笔记·爬虫·产品运营·产品经理
Gnevergiveup18 小时前
ATT&CK红蓝对抗实战指南-Windows安全基础
笔记·网络安全