历史上的今天
今天是:2024年10月30日(星期三)
2019年10月30日 | ARM汇编语言中MOV MVN LDR区别
2019-10-30 来源:51hei
个人总结,如有错误,欢迎纠正,谢谢!!!
MOV指令可以完成从另一个寄存器,被移位的寄存器或将一个立即数加载到目的寄存器。
例如:
MOV R1, R0
MOV R1, R0, LSL #3
MOV R1 , #3
但把立即数赋给一个寄存器,对立即数的范围有要求。只能是由8bit连续有效位通过偶
数次移位能得到的数。如果立即数超出这个范围,就没办法用一条MOV指令给寄存器赋值。
例如:
MOV R0, #0xFF
这条指令的意思是将0xFF这个立即数复制到R0寄存器中去,且MOV 指令只能将寄存器
中的数相互的复制。
MVN指令可以完成从另一个寄存器,被移位的寄存器或将一个立即数加载到目的寄存器。
与MOV指令不同之处传送之前按位取反了,即把一个被取反的值传送到目的寄存器中。
例如:
MVN R0, #0 //是将立即数0去反后传送给寄存器R0的。
这条指令的意思是将MOV指令不能操作的一些立即数进行操作!也是只能在寄存器中相互
复制。
ARM指令集中,LDR通常都是作为加载指令的,但是它也可以作伪指令。
LDR,STR作为加载指令, 用于寄存器和存储器之间的数据传输。一般用在寄存器间接寻址
或基址变址寻址。
例如:
LDR R1, [R0] //寄存器间接寻址
LDR R1, [R0,#3] //基址变址寻址
LDR 作为伪指令和ARM的LDR指令很像,但是作用不太一样。LDR伪指令可以在立即数前
加上=,以表示把一个地址写到某寄存器中。
LDR R1, =0xxxxx
当第二个操作数0xxxxx没有超过MOV或者MVN 第二个操作数的范围,就会将指令之间编
译成MOV R1 , #0xxxxx或者MVN R1 , #0xxxxx(取反后的值)
当第二个操作数0xxxxx超过MOV或者MVN 第二个操作数的范围,编译器将该常数放在数据缓冲区中,同时用一条基于PC的LDR指令读取该常数。但是LDR伪指令处到数据缓冲区(也叫做 文字池)的目标数据所在的地址偏移量一定要小于4KB,否则出错。这也是能不用
LDR伪指令就不用的原因。
下一篇:ARM与嵌入式入门的建议
史海拾趣
|
随着人类环保意识的不断增强,石油资源逐年减少,油价逐步攀升,降低汽车污染和节约能源已成为世界各国政府面临的严峻问题。蓄电池技术和氢气的制取、运输、储存、成本等严重制约了电动汽车和燃料电池汽车的发展,因而混合动力汽车应运而生。在混合 ...… 查看全部问答> |
|
求开关电源(LED驱动)用的PROTEL专用的元器件PCB封装 为了提高点画板效率,望哪位仁兄,给个开关电源用的PROTEL专用的PCB封装数据库; 感激不尽啊。。。同一城市的还可以请吃饭哈哈… 查看全部问答> |
|
同一块LCD屏,在不同的平台上(WINCE / ARM7, ARM9, ARM11)运行,以下参数都要重新调整,是不是这样? 为什么? HSPW: 行同步肪冲宽度 HBPD: 行可视范围 ...… 查看全部问答> |
|
我用的是优龙科技提供的s3c2410 BSP,,第一次编译,出现如下的错误: Copying G:\\WINCE500\\public\\dcom\\oak\\lib\\ARMV4I\\debug\\ole32com.pdb to G:\\WINCE500\\PBWorkspaces\\SMDK2410\\WINCE500\\smdk2410_ARMV4I\\cesysgen\\oak\\target\\AR ...… 查看全部问答> |
|
如题: 在C:\\WINCE500\\PLATFORM\\SMDK2410\\Inc\\s2410.h 中定义了很多的2410的外部接口结构体,比如IOP,SPI等,SPI寄存器口定义如下: // // SPI // #define SSP_BASE 0xB1900000 // 0x59000000 typedef struct { &nb ...… 查看全部问答> |
|
官方发布的例程都是一个定时器只工作于一种方式的,我现在让TIM2的两个通道分别工作于不同的方式,得到的实际结果与用两个定时器工作于这两种方式得到的结果有差别,我没有找到相关的解释,请香版主指教。以下为代码和相关说明。/* TIM2C ...… 查看全部问答> |
|
有没有哪位大侠参加过至芯公司的FPGA的培训呢?主要有一些什么样的内容?感觉学到的东西多吗?钱花的值不值呢?希望描述的具体点就好。谢谢各位大侠了!!!你们的意见对小弟很重要的,再次感谢!!… 查看全部问答> |
|
自已倒腾了几天android,自从两天前将android的xp下的模拟开发平台搭好后,一直根据一些手册跑了一些程序,自己也动手写了几个应用程序,对工程结构和一些基础知识有了一定的了解 。 这里我将倒腾出我第一站的学习 ...… 查看全部问答> |




