ARM汇编中ldr与adr的区别

发布者:meilidaowl最新更新时间:2016-01-08 来源: eefocus关键字:ARM  汇编  ldr  adr 手机看文章 扫描二维码
随时随地手机看文章
        ldr     r0, _start

        adr     r0, _start

        ldr     r0, =_start

        nop

        mov     pc, lr

_start:

        nop

 

编译的时候设置 RO 为 0x0c008000

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

0c008000 <_start-0x14>:

c008000:       e59f000c        ldr     r0, [pc, #12]   ; c008014 <_start>

c008004:       e28f0008        add     r0, pc, #8      ; 0x8

c008008:       e59f0008        ldr     r0, [pc, #8]    ; c008018 <_start+0x4>

c00800c:       e1a00000        nop                     (mov r0,r0)

c008010:       e1a0f00e        mov     pc, lr

0c008014 <_start>:

c008014:       e1a00000        nop                     (mov r0,r0)

c008018:       0c008014        stceq   0, cr8, [r0], -#80

分析:

ldr     r0, _start

从内存地址 _start 的地方把值读入。执行这个后,r0 = 0xe1a00000

adr     r0, _start

取得 _start 的地址到 r0,但是请看反编译的结果,它是与位置无关的。其实取得的时相对的位置。例如这段代码在 0x0c008000 运行,那么 adr r0, _start 得到 r0 = 0x0c008014;如果在地址 0 运行,就是 0x00000014 了。

ldr     r0, =_start

这个取得标号 _start 的绝对地址。这个绝对地址是在 link 的时候确定的。看上去这只是一个指令,但是它要占用 2 个 32bit 的空间,一条是指令,另一条是 _start 的数据(因为在编译的时候不能确定 _start 的值,而且也不能用 mov 指令来给 r0 赋一个 32bit 的常量,所以需要多出一个空间存放 _start 的真正数据,在这里就是 0x0c008014)。

因此可以看出,这个是绝对的寻址,不管这段代码在什么地方运行,它的结果都是 r0 = 0x0c008014

关键字:ARM  汇编  ldr  adr 引用地址:ARM汇编中ldr与adr的区别

上一篇:ARM MMU工作原理剖析
下一篇:ARM启动文件2440init.s分析

推荐阅读最新更新时间:2024-03-16 14:42

Testin云测协同开发者 助力超越体验的ARM平板
    中国移动计算与平板峰会日前在深圳举行,Testin云测CEO王军发表了”与开发者合作,助力超越体验的ARM平板”的主题演讲,力荐移动平板厂商与广大移动游戏应用开发者合作,在开发者的持续不断地测试、优化下,向市场推出超出用户预期的平板电脑。    随着市场竞争的白热化,国内的品牌平板电脑厂商和为数众多的白牌平板电脑厂商的利润在倒逼的价格挤压下所剩无几,如何突围是摆在每个平板电脑厂商面前亟待解决的问题,以互联网的方式经营游戏、应用等内容,将一次性的销售收入,变为长久的运营利润,是一条已经被验证的成功之路,就像餐厅的经营一样,终端本身就如同米饭馒头等主食,不可或缺、但无法为经营带来更大的利润,只有菜品才是消费者埋
[手机便携]
ucos在s3c2410上运行过程整体剖析之基础知识- ARM9芯片知识
阅读这些内容前,希望你对计算机有了一点简单的概念,最好学习过计算机组成原理并知道一些最基本的概念。如果你学习过51系列的单片机并且利用51系列的单片机做过一些开发,那看这些内容就很简单了。如果你没这些知识也没关系,以我的学习经历来看,可以给大家一个学习计算机组成原理的建议。你可以先大致学习一下计算机组成原理,学完之后一般会对计算机有一个大体的了解,计算机专业在开设这门课时一般会安排计算机组成原理实验,这个实验大家要好好去做,这样会打消你对计算机很神秘的认识。有了这些基础之后,建议大家去学51系列的单片机,在这个小型计算机上做一些开发,这样你就会对计算机组成原理有了更真实更深刻的认识。学习了51系列单片机后,你也对计算机语言有了进一
[单片机]
基于ARM嵌入式系统的自动化配送系统
  自动化管理操作系统已经是现代企业必不可少的一部分,视频图像传输监控系统已经广泛的应用于交通、医院、银行、家居和视频会议等重要场合。早期的模拟视频监控系统不能联网,只能与管理中心进行点对点(Point—to-Point)通信,随着图像与视频处理技术、网络技术和自动控制技术的发展,视频图像系统已经过渡到了数字化的网络传输。它以数字视频的压缩、传输、存储和播放(回放)为核心,采用先进的数字图像压缩编/解码技术和传输技术,将智能图像处理与识别技术用于图像显示、调整、跟踪,根据现场环境对物体进行跟踪识别,对图像进行分析和处理。    1 自动化配送系统构成   本系统基于USB摄像头的图像采集子系统,ARM处理器子系统和无线网络
[嵌入式]
ARM7202触摸屏接口设计方案
1 引言 不同的应用领域触摸屏的设计方式也各不相同,一般有以下三种:⑴应用触摸屏模块。触摸屏模块提供标准的硬件接口与应用系统(一般为PC或X86架构的工控机)相连,安装驱动程序后即可工作,基本无需开发;⑵扩展触摸屏控制器。这是嵌入式系统中设计触摸屏普遍使用的方法,常用的触摸屏控制芯片有ADS7843、ADS7846等,这些芯片内部集成了A/D转换器和触摸屏的驱动电路,同时要设计一定的软件;⑶与前面方式⑵相仿,有些处理器集成了A/D转换器,通过IO口模拟触摸屏的驱动信号也可实现触摸屏的控制。 ARM7202集成了ARM7TDMI CPU核、存储器管理单元(MMU)、8KB高速缓冲存储器(Cache),主频达70MHz。是一高性能
[单片机]
<font color='red'>ARM</font>7202触摸屏接口设计方案
有这10个关键点,在ARM下高效C编程没问题!
通过一定的方法来编写C程序,可以帮助C编译器生成执行速度更快的ARM代码。下面就是一些与性能相关的关键点: 1.对局部变量、函数参数和返回值要使用signed和unsigned int类型。这样可以避免类型转换,而且可高效地使用ARM的32位数据操作指令。 2.最高效的循环体形式是减计数到零(counts down to zero)的do-while循环。 3.展开重要的循环来减少循环的开销。 4.不要依赖编译器来优化掉重复的存储器访问。指针别名会阻止编译器的这种优化。 5.尽可能把函数参数的个数限制在4个以内。如果函数参数都存放在寄存器内,那么函数调用就会快得多。 6.按元素尺寸从小到大排列的方法来安排结构体,特别是在thumb
[单片机]
专注ARM,恩智浦2009年的中国“芯”路
  自2月获得Cortex-M0授权后,仅仅几周时间,恩智浦便推出了业界首款基于该内核的功能性硅芯片,“这对ARM也是创纪录的,”恩智浦半导体副总裁兼微控制器产品线总经理Geoff Lees在近日的媒体见面会上自豪地说,而此前的内核,往往需要2年的时间。 恩智浦半导体副总裁兼微控制器产品线总经理Geoff Lees   在诸多采用ARM Cortex-M3处理器为核心的MCU供应商中,恩智浦可谓是姗姗来迟,早前Luminary(被TI收购)、ST 都已经推出基于此系列的MCU,且表现不俗。正当广大工程师纷纷猜测恩智浦M3内核产品何时诞生时,不仅Cortex-M3来了,随之而来的,还
[单片机]
格罗方德:已研发12nm FinFET封装的3D Arm芯片
8月10日消息 根据外媒Tom's Hardware的报道, GlobalFoundries (格罗方德)本周宣布,已经使用其12nm FinFET工艺成功制成了高性能的3D Arm芯片。 格罗方德表示:“这些高密度的3D芯片将为计算应用,如AI/ML(人工智能和机器学习)以及高端消费级移动和无线解决方案,带来新的性能和能源效率。” 据报道,格罗方德和Arm这两家公司已经验证了3D设计测试(DFT)方法,使用的是格罗方德的混合晶圆对晶圆键合。这项技术每平方毫米可支持多达100万个3D连接,使其具有高度可扩展性,并有望为12nm 3D芯片提供更长的使用寿命。 对于3D封装技术,英特尔去年宣布了其对3D芯片堆叠的研究,AM
[手机便携]
ARM CEO向买家泼冷水:不如把钱扔进火里
ARM公司CEO沃伦·伊斯特(Warren East) 据国外媒体报道,ARM公司CEO沃伦·伊斯特(Warren East)日前向有意收购该公司的买家泼冷水,称该公司作为独立公司更有价值。   由于业内传言ARM将被收购,该公司股价上周涨至8年来的最高点。但ARM CEO伊斯特表示,作为一家独立公司的ARM更有价值,收购只会让买家浪费钱。   “从经济角度讲,这样一笔收购不划算,”伊斯特在旧金山接受采访时说,“买家展开收购的唯一理由是消灭竞争对手。”   ARM的芯片技术被大多数智能手机(包括苹果iPhone)所采用,该公司的客户还包括高通和德州仪器。伊斯特认为,芯片制造商向ARM支付“数千万”美元的授权费,因
[半导体设计/制造]
<font color='red'>ARM</font> CEO向买家泼冷水:不如把钱扔进火里
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved