历史上的今天
返回首页

历史上的今天

今天是: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伪指令就不用的原因。


推荐阅读

史海拾趣

Discrete Semiconductor Industries公司的发展小趣事

“绿源科技”是一家致力于绿色环保的Discrete Semiconductor Industries公司。该公司注重环保理念在产品研发和生产过程中的应用,积极推广绿色制造和循环经济。通过采用环保材料和工艺,绿源科技成功开发出了一系列低能耗、低污染的半导体产品。这些产品不仅满足了市场的需求,还为环境保护做出了积极贡献。同时,绿源科技还积极参与各种环保公益活动,推动行业向更加绿色、可持续的方向发展。

AEMC Instruments公司的发展小趣事

随着产品的不断完善和升级,AEMC Instruments公司开始积极拓展市场。公司加强与国际市场的合作,通过参加国际展会、建立全球分销商网络等方式,将产品推向全球。同时,公司还积极寻求与国际知名企业的合作,共同研发新产品和技术,以进一步提升产品的竞争力。这些举措不仅扩大了公司的市场份额,也提高了公司的国际知名度。

Grand Halo Technology Co Ltd公司的发展小趣事

随着产品的不断完善和升级,AEMC Instruments公司开始积极拓展市场。公司加强与国际市场的合作,通过参加国际展会、建立全球分销商网络等方式,将产品推向全球。同时,公司还积极寻求与国际知名企业的合作,共同研发新产品和技术,以进一步提升产品的竞争力。这些举措不仅扩大了公司的市场份额,也提高了公司的国际知名度。

Altera (Intel)公司的发展小趣事

AEMC Instruments公司始终注重产品品质和质量管理。公司建立了完善的质量管理体系,并通过了多项国际认证,如ISO 9001质量管理体系认证等。这些认证不仅证明了公司在品质管理方面的实力,也提高了客户对产品的信任度。同时,公司还加强了对供应商和生产过程的管理,确保从原材料采购到产品生产的每一个环节都符合国际标准和客户要求。

FCT electronic公司的发展小趣事

近年来,电子行业面临着成本上升、全球不稳定以及经济动荡等多重挑战。FCT electronic公司凭借其在挠性电路板领域的深厚积累,积极应对这些挑战。公司加强了对供应链的管理,提高了生产效率,降低了成本。同时,FCT electronic公司还加大了对研发的投入,推动产品向高端化、智能化方向转型升级。这些努力使FCT electronic公司在行业中保持了领先地位。

骅讯(Cmedia)公司的发展小趣事

近年来,随着科技的不断进步和市场的不断变化,骅讯公司也积极寻求创新转型和拓展市场。在保持其在音频芯片设计领域领先地位的同时,骅讯还积极开发新的业务领域,如软件研发、数字内容供应等。这些创新举措不仅为骅讯带来了新的增长点,也为其在电子行业中保持领先地位提供了有力支持。

以上是关于骅讯(Cmedia)公司在电子行业中发展起来的相关故事简要概述。这些故事展示了骅讯如何凭借其技术实力和市场洞察力在竞争激烈的电子行业中不断发展壮大。

问答坊 | AI 解惑

混合动力汽车车用镍氢动力电池

随着人类环保意识的不断增强,石油资源逐年减少,油价逐步攀升,降低汽车污染和节约能源已成为世界各国政府面临的严峻问题。蓄电池技术和氢气的制取、运输、储存、成本等严重制约了电动汽车和燃料电池汽车的发展,因而混合动力汽车应运而生。在混合 ...…

查看全部问答>

求开关电源(LED驱动)用的PROTEL专用的元器件PCB封装

  为了提高点画板效率,望哪位仁兄,给个开关电源用的PROTEL专用的PCB封装数据库; 感激不尽啊。。。同一城市的还可以请吃饭哈哈…

查看全部问答>

同一块LCD屏,在不同的平台上的调试问题.

      同一块LCD屏,在不同的平台上(WINCE / ARM7, ARM9, ARM11)运行,以下参数都要重新调整,是不是这样?     为什么?         HSPW: 行同步肪冲宽度     HBPD: 行可视范围 ...…

查看全部问答>

红外

有没有人知道红外探测器能探测的最小温度是多少? 红个物体都在常温下的辐射波长大概是多少??、 …

查看全部问答>

wince下编译出现"系统找补到指定路径"的错误

我用的是优龙科技提供的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 ...…

查看全部问答>

请问SMDK2410 BSP包里s2410.h中地址

如题: 在C:\\WINCE500\\PLATFORM\\SMDK2410\\Inc\\s2410.h 中定义了很多的2410的外部接口结构体,比如IOP,SPI等,SPI寄存器口定义如下: // // SPI // #define SSP_BASE 0xB1900000  // 0x59000000 typedef struct  { &nb ...…

查看全部问答>

定时器不同通道工作于不同方式的疑问

官方发布的例程都是一个定时器只工作于一种方式的,我现在让TIM2的两个通道分别工作于不同的方式,得到的实际结果与用两个定时器工作于这两种方式得到的结果有差别,我没有找到相关的解释,请香版主指教。以下为代码和相关说明。/* TIM2C ...…

查看全部问答>

至芯公司FPGA培训

有没有哪位大侠参加过至芯公司的FPGA的培训呢?主要有一些什么样的内容?感觉学到的东西多吗?钱花的值不值呢?希望描述的具体点就好。谢谢各位大侠了!!!你们的意见对小弟很重要的,再次感谢!!…

查看全部问答>

倒腾android第一站学习

  自已倒腾了几天android,自从两天前将android的xp下的模拟开发平台搭好后,一直根据一些手册跑了一些程序,自己也动手写了几个应用程序,对工程结构和一些基础知识有了一定的了解 。      这里我将倒腾出我第一站的学习 ...…

查看全部问答>