历史上的今天
今天是: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 的绝对地址。
上一篇:汇编指令-CMP、TEQ
史海拾趣
|
摘要:本文介绍了一种新的PLC开发过程——嵌入式PLC的开发。嵌入式PLC以用户的应用为中心,软硬件可由用户根据工艺需要来裁剪,很好地满足了用户的个性化需求。 关键词:嵌入式PLC芯片组 系统软件 内核 如今工 ...… 查看全部问答> |
|
声明关于在51下实现汉字输入(不包括汉字库和联想汉字等)我真没干过,最多是土得掉渣的数码管,和LCD下的汉字临时型几个汉字字符提示!但对汉字的输入从没干过,最近一个汽车项目要用,我目前选用的51片子,程序空间只有12K,所以希望用简易输入法 ...… 查看全部问答> |
|
Error output EDIF file DP_CPLD_TOP.edi Error executing Synplicity VHDL/Verilog HDL Synthesizer 这个怎么解决啊,是我的VHDL语言有语法错误还是别的什么??急!!!!!… 查看全部问答> |
|
能不能谈谈在MDK里面,将程序烧写到外扩norflash的流程? 例程中有个binary文件夹,里面的readme我看了的,意思是: 1.将STM3210E-EVAL_NOR.FLM文件拷贝到Keil\\ARM\\Flash文件夹下 2.Project->Options->Target窗口中,选择ROM1,开始地址输入0x64000000,大小范围输入0x1000000,然后勾选“Star ...… 查看全部问答> |




