历史上的今天
返回首页

历史上的今天

今天是:2025年07月20日(星期日)

2021年07月20日 | 汇编指令-MOV与ldr区别

2021-07-20 来源:eefocus

MOV

  1.可以寄存器与寄存器之间传递数据

  2.可以把立即数移动到寄存器中(常数不能超过32位)


LDR

  1.可以地址与寄存器之间的数据传递

  2.也可以常数传递到寄存器中

实例:


  1.r1与r2寄存器之间传递就只能用MOV:


  MOV r1,r2

  2.常数传递到寄存器可以使用MOV和ldr:


  MOV r0,#0

  ldr r0,=0

  3.寄存器与地址0X00000000之间传递数据只能用ldr:


  ldr r0,=0X30000000

  ldr r0,0X00000000

LDR指令:


ldr r0, 0x12345678          // 就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中。ldr r0,r1                     //表示把r1寄存器中的值放入r0ldr r0,[r1]                  // [r1]表示r1中值对应内存的地址,所以是把r1中的数当作一个地址,把这个地址中的值放入r0.

LDR伪指令:


 ldr r0, =0x12345678`       //例1(立即数):

  这样,就把0x12345678这个地址写到r0中了。所以,ldr伪指令和mov是比较相似的。只不过mov指令限制了立即数的长度为8位,也就是不能超过512。而ldr伪指令没有这个限制。如果使用ldr伪指令时,后面跟的立即数没有超过8位,那么在实际汇编的时候该ldr伪指令是被转换为mov指令的。


ldr  r0, =_start //将指定标号的值赋给r0

  这里取得的是标号 _start 的绝对地址,这个绝对地址(链接地址)是在链接的时候确定的。它要占用 2 个 32bit的空间,一条是指令,另一条是文字池中存放_start 的绝对地址。


推荐阅读

史海拾趣

Auctor Corp公司的发展小趣事

Auctor Corp公司深知品质是企业生存和发展的关键。因此,公司从原材料采购、生产流程控制到产品出厂检验,每一个环节都严格把控品质。同时,公司还建立了完善的品质管理体系,通过持续改进和优化生产流程,确保产品质量的稳定性和可靠性。这种对品质的执着追求,使得Auctor Corp的产品在市场上赢得了良好的口碑。

Delkin Devices公司的发展小趣事

为了更好地服务全球客户,Delkin Devices积极拓展海外市场。公司在欧洲设立了办事处,以便更直接地接触欧洲市场并了解当地客户需求。此外,Delkin Devices还通过参加国际展会、建立合作伙伴关系等方式,不断拓展其在全球范围内的影响力。通过这些努力,Delkin Devices成功将产品销往全球多个国家和地区,实现了国际化布局和市场拓展。

Daniel Woodhead公司的发展小趣事

为了进一步提升技术水平和市场竞争力,Daniel Woodhead公司开始寻求与国际知名企业的合作。公司与多家国际知名半导体制造商和电子产品生产商建立了战略合作关系,共同研发新技术、新产品。这些合作不仅为公司带来了先进的技术和理念,还拓宽了公司的国际视野和市场渠道。

CLAIREX公司的发展小趣事

随着订单的不断增加,Clairex意识到必须提升生产能力以满足市场需求。于是,公司投入大量资金引进了先进的生产设备和技术,并对生产线进行了优化改造。同时,Clairex还建立了严格的质量控制体系,从原材料采购到产品出厂的每一个环节都进行严格把关。这些措施确保了Clairex产品的质量和稳定性,赢得了客户的信任和好评。

Eink公司的发展小趣事
随着电子纸技术的广泛应用,E-Ink公司的商业地位也逐渐上升。其电子纸产品不仅在全球范围内销售,还赢得了众多合作伙伴的青睐。同时,E-Ink公司并没有停止技术创新的步伐,继续投入大量资源进行研发,以推动电子纸技术的进一步发展。这种持续的创新精神使得E-Ink公司在电子行业中保持了领先地位。
艾迪沃德公司的发展小趣事
避免长时间超负荷使用仪器,以免对电源电路造成损坏。

问答坊 | AI 解惑

基于嵌入式PLC芯片组的多路模拟量PLC的开发

摘要:本文介绍了一种新的PLC开发过程——嵌入式PLC的开发。嵌入式PLC以用户的应用为中心,软硬件可由用户根据工艺需要来裁剪,很好地满足了用户的个性化需求。 关键词:嵌入式PLC芯片组  系统软件  内核    如今工 ...…

查看全部问答>

电容放电电路仿真

我想做一个已经充好电的电容对串联的电阻和电感放电,在用ORCAD仿真时不加开关直接设置电容的IC值,出来的结果和实际不符,我感觉电流应该从零开始增大的,然后振荡。各位大侠帮我看看,到底应该怎么做,附件里给出了仿真电路图和输出结果图…

查看全部问答>

51下实现汉字输入,“搞”们请出招

声明关于在51下实现汉字输入(不包括汉字库和联想汉字等)我真没干过,最多是土得掉渣的数码管,和LCD下的汉字临时型几个汉字字符提示!但对汉字的输入从没干过,最近一个汽车项目要用,我目前选用的51片子,程序空间只有12K,所以希望用简易输入法 ...…

查看全部问答>

isplever编译问题!

Error output EDIF file DP_CPLD_TOP.edi Error executing Synplicity VHDL/Verilog HDL Synthesizer 这个怎么解决啊,是我的VHDL语言有语法错误还是别的什么??急!!!!!…

查看全部问答>

wince 电源电量

界面已做好 ,有一个按钮,请在按钮的响应事件里添加代码 要求得出 剩余电量的百分比。 谢谢…

查看全部问答>

                                 问题已解决…

查看全部问答>

能不能谈谈在MDK里面,将程序烧写到外扩norflash的流程?

例程中有个binary文件夹,里面的readme我看了的,意思是: 1.将STM3210E-EVAL_NOR.FLM文件拷贝到Keil\\ARM\\Flash文件夹下 2.Project->Options->Target窗口中,选择ROM1,开始地址输入0x64000000,大小范围输入0x1000000,然后勾选“Star ...…

查看全部问答>

-stack 40

我在书上看到CMD文件里有 -stack 40 请问这是什么意思? 希望高手不吝赐教,多谢!…

查看全部问答>

UCOS-II 是几位操作系统

本人新学UCOS-II,我想问下UCOS-II 到底是多少位的操作系统??…

查看全部问答>