汇编指令:MOV与ldr区别
MOV
- 可以寄存器与寄存器之间传递数据
- 可以把立即数移动到寄存器中(常数不能超过32位)
LDR
- 可以地址与寄存器之间的数据传递
- 也可以常数传递到寄存器中
实例:
1、r1与r2寄存器之间传递就只能用MOV
:
MOV r1,r2
2、常数传递到寄存器可以使用MOV
和ldr
:
MOV r0,#0ldr r0,=0
3、寄存器与地址0X00000000
之间传递数据只能用ldr
:
ldr r0,=0X30000000ldr 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
伪指令和K是比较相似的。只不过mov
指令限制了立即数的长度为8位
,也就是不能超过512。而ldr
伪指令没有这个限制。如果使用ldr
伪指令时,后面跟的立即数没有超过8位,那么在实际汇编的时候该ldr伪指令是被转换为mov指令的。
ldr r0, =_start //将指定标号的值赋给r0
这里取得的是标号 _start
的绝对地址,这个绝对地址(链接地址)是在链接的时候确定的。它要占用 2 个 32bit的空间,一条是指令,另一条是文字池中存放_start
的绝对地址。
汇编指令:MOV与ldr区别相关推荐
- 汇编指令-MOV与ldr区别
MOV 1.可以寄存器与寄存器之间传递数据 2.可以把立即数移动到寄存器中(常数不能超过32位) LDR 1.可以地址与寄存器之间的数据传递 2.也可以常数传递到寄存器中 实例: ...
- 汇编指令-adr与ldr伪汇编区别(8)
adr :相对寻址,与当前位置有关 ldr :绝对寻址,与当前位置无关 在初始化SDRAM时就会用到adr,代码如下: /* 初始化SDRAM */ldr r0,=BWSCON //r0=SDRAM ...
- 计算机汇编指令mov和mova,汇编语言中mov和lea指令的区别详解
指令(instruction)是一种语句,它在程序汇编编译时变得可执行.汇编器将指令翻译为机器语言字节,并且在运行时由 CPU 加载和执行. 一条指令有四个组成部分: 标号(可选) 指令助记符(必需) ...
- ARM 汇编指令 ADR 与 LDR 使用
简介 这两个都是伪指令:ADR 是小范围的地址读取伪指令,LDR 是大范围的读取地址伪指令.可实际使用的区别是: ADR 是将基于 PC 相对偏移的地址值或基于寄存器相对地址值读取的伪指令,而 LDR ...
- 关于汇编指令ldr和str的理解
(1)..ldr指令:(load装载) 外存--->>>内存 ldr 指令传数据(将数据传入寄存器) 无论是否是立即数,都可以进行传 格式:ldr 寄存器,=数字 若数字式立即数:l ...
- arm指令中mov和ldr及ldr伪指令的区别
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令.比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就 ...
- 2020-12-4((ARM汇编)mov指令,LDR指令,LDR伪指令)
首先说明一下 ARM是RISC("reduced instruction set computer",即"精简指令集计算机")结构 x86是CISC(" ...
- ARM MOV和 LDR指令关系
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令. 比如想把数据从内存中某处读取到寄存器中,只能使用ldr 比如: ldr r0, 0x123456 ...
- ARM指令浅析1(mov、ldr)
1.环境及优化项 采用-O2优化选项,通过arm处理器架构下的gcc编译器编译用例生成汇编码查看其生成的指令.至于为什么用O2选项,是因为在某些用例中,加入-O3选项之后,arm处理器架构下gcc编译 ...
最新文章
- 车载以太网之权威指南_awk权威指南之 终结篇!
- zz SOA推荐书籍列表
- RHEL7 单独安装图形 X11
- JavaWeb学习笔记——XML简介
- 3.5 Bounding Box 预测-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- Volley框架使用及源码解析
- 深度学习笔记之使用Faster-Rcnn进行目标检测 (原理篇)
- Linux下读取smBIOS源码,Linux下读取SMBIOS信息
- 4.Model Validation
- 让sublime text显示空格,到底是点还是横杠TabError: inconsistent use of tabs and spaces in indentation
- 手机应用软件测试经验总结
- php模板和框架,php模板和框架的区别的区别是什么
- 服务器未能识别 HTTP 标头 SOAPAction 的值
- 基于AVR-BootLoader,通过霜蝉远程串口可实现单片机的远程升级
- 滴滴程序员年薪80万却被亲戚鄙视:钱多有啥用,我儿子二本大学教师
- [Git] 009 逆转未来
- 人工智能工程师第七期-AI100-专题视频课程
- VBoxManage 命令操作,详细的网络设置命令
- 网络项目实践与设备管理教程-毛正标
- Centos 7 中安装 Oracle 11g R2数据库【超详细】
热门文章
- 机器学习中的数学——距离定义(四):切比雪夫距离(Chebyshev Distance)
- linux7防火墙拒绝ip访问,FirewallD防火墙常用经验——开放端口——拒绝某个IP访问...
- JAVA重点类 多线程Thread 创建 生命周期 同步
- vue的v-model的双向数据绑定原理
- 对话赞奇科技总经理金伟:云渲染何以成为元宇宙“基建”
- SQL UNIQUE 约束
- 频域滤波matlab代码_频域的弦,时域的箭(1)
- python读取docx文件出错_读取docx文件时出现错误的特殊字符
- 数电实验5 秒表初步
- type II补偿器的误差放大和跨导放大