ARM汇编中ldr伪指令和ldr指令(转载)
转自:http://blog.csdn.net/ce123_zhouwei/article/details/7182756
ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:
ldr r0, 0x12345678
就是把0x12345678这个地址中的值存放到r0中。而mov不能实现这个功 能,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x86中没有ldr这种指令,因 为x86的mov指令可以将数据从内存中移动到寄存器中。
另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把一个值(一般是一个地址)写到某寄存器中,比如:
ldr r0, =0x12345678
这样,就把0x12345678这个值写到r0中了。所以,ldr伪指令和 mov是比较相似的。只不过mov指令限制了立即数的长度为8位,也就是不能超过512。而ldr伪指令没有这个限制。如果使用ldr伪指令时,后面跟的 立即数没有超过8位,那么在实际汇编的时候该ldr伪指令是被转换为mov指令的。
ldr r1,=0x10
会变成
mov r1,#0x10
综述所述:ldr伪指令用于加载32位的立即数或一个地址值到指定寄存器。在汇编编译源程序时,ldr伪指令被编译器替换成一条合适的指令。若加载的常数 未超出mov或mvn的范围,则使用mov或mvn指令代替该ldr伪指令,否则汇编器将常量放入文字池,并使用一条程序相对偏移的ldr指令从文字池读 出常量。
转载于:https://www.cnblogs.com/lance-ehf/p/4521788.html
ARM汇编中ldr伪指令和ldr指令(转载)相关推荐
- arm汇编中DCB、DCW、DCD、DCQ指令
背景 在ida中进行分析so文件,就是elf文件,它所对应的arm汇编,在汇编中会时常碰到一些下面的汇编指令.DCB是arm汇编中的伪指令,下面就针对这个指令相关做下小记录. 伪指令及DC系列指令 A ...
- 伪指令相当于c语言的什么,ARM汇编中关于“.word”伪指令的概念(转)
PS:在u-boot源码时遇到_armboot_start._bss_start等这些变量,不知道指向什么地址,于是查了一下,弄清了ARM汇编中".word"这个伪指令是什么意思了 ...
- LDR伪指令和LDR指令及MOV指令的区别
1.前言 ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令. 2.LDR指令 就是将地址中的值存放到寄存器中 比如想把数据从内存中某处读取到寄存器中 ...
- 【ARM】ARM汇编程序设计(五) str和ldr
00. 目录 文章目录 00. 目录 01. ldr伪指令 02. ldr指令 03. adr指令 04. str指令 05. 附录 01. ldr伪指令 ldr示例一: .section .roda ...
- arm汇编中mov、movs、movw、movl、movb解析
arm汇编中mov指令 mov 指令在汇编中表示传送含有 movl mov long : 传送字长 : 32位:把32位立即数放到寄存器 movw mov word:传送字 :16位: 把 16 位立 ...
- ARM中LDR伪指令与LDR加载指令
ARM指令集中,LDR通常都是作加载指令的,但是它也可以作伪指令. LDR伪指令的形式是"LDR Rn,=expr".下面举一个例子来说明它的用法. COUNT EQU ...
- ARM汇编指令:LDR伪指令和LDR装载指令的区别
LDR伪指令的格式: LDR register, =expression 相当于把expression的值(其实标号可以理解为地址值)放到寄存器中: LDR装载指令的格式: LDR register ...
- ARM汇编中的ldr和adr的区别及其在uboot中相关源码的分析
ARM汇编有ldr指令以及ldr.adr伪指令,它们都可以将标号表达式作为操作数,下面通过分析一段代码以及对应的反汇编结果来说明它们的区别. ldr r0, _start adr r0, _start ...
- C语言的变量和汇编中的伪指令,伪指令 尤其EQU DW DB(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪指令是在微机标准版基础上修改的版
微机原理中表明 变量用伪指令DW,DB 单片机中的伪指令EQU C语言中的变量来源与汇编的伪指令(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪 ...
最新文章
- 3g无线图传点到点模式与服务器模式比较,RTK网络模式分类及网络制式的选择
- Python 学习第十八天 js 正则及其它前端知识
- android studio 初次使用Kotlin(环境准备篇)
- 【Python CheckiO 题解】Striped Words
- 超详细springboot热部署
- css相关笔记(一)
- 航空信息指挥调度系统_应急指挥中心指挥调度系统解决方案(一)
- 数字信号处理——多速率信号处理
- 中国石油大学(北京)-《 公共社交礼仪 》-​​​​​​​第一阶段在线作业
- chatter投稿&メール通知
- pycharm安装及添加桌面图标
- 如何写出更具有Python风格的代码
- Java有没有lower_bound函数_函数 - lower_boundupper_bound
- ADXL345传感器介绍
- bugku-渗透测试1通关 wp
- html文件剖析 - mdn学习
- [系统安全] Windbg Preview调试记录
- Android /iPhone/iPad UI之常用图标尺寸规范
- [OpenBMC] 简单解析 smbios-mdr
- 设置数据有效性实现单元格下拉菜单的3种方法
热门文章
- 问题 A: 编写函数:比较三个数大小 (Append Code)
- amd显卡风扇调节_为什么NVIDIA和AMD公版显卡纷纷摒弃涡轮散热器而采用多风扇散热设计?...
- 2018-携程-春招题
- linux建sybase设备,linux sybase 安装全过程(写给初学者)
- Jenkins配置钉钉通知
- Python 测试驱动开发读书笔记(一)使用功能测试协助安装Django
- Marlin Protocol正在为验证者开放OTC渠道
- Hadoop 的核心(1)—— HDFS
- C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL
- MVC和WebApi中设置Area中的页为首页