嵌入式Linux学习笔记——汇编指令LDR、STR

学习正点原子嵌入式第二期第八讲时,涉及汇编LDR、STR指令。

 

 LDR R1,[R0] 是读取R0地址所对应的数据给R1寄存器。而STR R1,[R0] 则是将R1里的数据给到R0地址中,而不是和LDR语句一样,R0地址所对应的数据?(其实这是一个很笨的问题,数据给到R0地址中,与R0地址所对应的数据是一个意思,都是修改了R0地址中所对应的数据的值)。

后查阅资料个人理解:[R0] 类似于51单片机中@R0 指R0中的值作为地址所对应的数据。

同时知道了

LDR R0,0xff (没有等号为指令)即将0xff这个值所对应的地址(即地址为0xff)中的值给到寄存器R0,相当于51中MOV R0,@R1  (R1=0xff,这里想表达的是51中的以寄存器中的值为地址所对应的值这个意思,语句MOV R0,@R1 可能有错,但表达的意思没错,已经好久没看过51的书了);为什么此处不用MOV呢?MOV只能在寄存器之间移动数据,或者把立即数移动到寄存器中。

LDR R0,=0xff (有等号为伪指令)即将0xff这个值给到寄存器R0,相当于51中取立即数;LDR伪指令和MOV的作用差不多,主要区别为MOV 操作的立即数的长度为8位,LDR伪指令没有限制。

在使用LDR伪指令时,后面跟的立即数没有超过8位,那么在实际汇编的时候该LDR伪指令是会被转换为MOV的,如下图所示。

 查阅资料链接为:adr adrl ldr mov总结整理 - 宋桓公 - 博客园 (cnblogs.com)

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值