自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

转载 adr ldr

同学们在学习ARM指令时,多数都会对adr和ldr这两个命令产生疑惑,那他们究竟有什么区别呢?其实这两个都是伪指令:adr是小范围的地址读取伪指令,ldr是大范围的读取地址伪指令。可实际上adr是将基于PC相对偏移的地址值或基于寄存器相对地址值读取的为指令,而ldr用于加载32为立即数或一个地址到指定的寄存器中。到这儿就会看到其中的区别了。如果在程序中想加载某个函数或者某个在联接时候指定的

2016-12-08 15:37:05 335

转载 ldm/stm与栈的处理 来自于朱有鹏嵌入式

为什么需要多寄存器访问指令ldr/str每周期只能访问4字节内存,如果需要批量读取、写入内存时太慢,解决方案是stm/ldmldm(load register mutiple)stm(store register mutiple)举例(uboot start.S 537行)stmia sp, {r0 - r12}将r0存入sp指向的内存处(假设为0x

2016-12-08 15:27:50 1419

转载 ARM立即数,LDR和MOV的区别

ARM立即数,LDR和MOV的区别    Mov 是把立即数赋给一个寄存器,但对立即数的范围有要求。只能是由8bit连续有效位通过偶数次移位能得到的数。如果立即数超出这个范围,就没办法用一条MOV指令给寄存器赋值。  LDR除了普通的读数之外,也有给寄存器赋立即数的功能。  你只要写 LDR R0,=0xabcdef  它没有立即数范围的限制。因为这是一条伪指令。如果立即数在M

2016-12-08 15:17:50 590

转载 MOV arm 通用寄存器 PC,LR

lr(r14)的作用问题,这个lr一般来说有两个作用: 1.当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复。 2.异常中断发生时,这个异常模式特定的物理R14被设置成该异常模式将要返回的地址。 另外注意pc,在调试的时候显示的是当前指令地址,而用mov lr,pc的时候lr保存的是此指令向后数两条指令的地址,大家可以试一下用mov pc,p

2016-12-08 14:48:32 1160

转载 LDR指令

LDR指令的格式: LDR{条件}   目的寄存器     作用:将 存储器地址 所指地址处连续的4个字节(1个字)的数据传送到目的寄存器中。LDR指令的寻址方式比较灵活,实例如下:LDR R0,[R1]                                                      ;将存储器地址为R1的字数据读入寄存器R0。LDR

2016-12-08 14:41:25 864

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除