标签:R0 R1 MOV LDR 地址 STR Linux 0xff
学习正点原子嵌入式第二期第八讲时,涉及汇编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)
标签:R0,R1,MOV,LDR,地址,STR,Linux,0xff 来源: https://blog.csdn.net/qq_43614555/article/details/121431470
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。