1、ADR伪指令--- 小范围的地址读取
ADR伪指令将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中。
在汇编编译器编译源程序时,ADR伪指令被编译器替换成一条合适的指令。通常,编译器
用一条ADD指令或SUB指令来实现该ADR伪指令的功能,若不能用一条指令实现,
则产生错误,编译失败。
ADR伪指令格式 :ADR{cond} register, expr
地址表达式expr的取值范围:
当地址值是字节对齐时,其取指范围为: +255 ~ 255B;
当地址值是字对齐时,其取指范围为: -1020 ~ 1020B;
2、ADRL伪指令----中等范围的地址读取
ADRL伪指令将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中,
比ADR伪指令可以读取更大范围的地址。在汇编编译器编译源程序时,ADRL伪指令
被编译器替换成两条合适的指令。若不能用两条指令实现,则产生错误,编译失败。
ADRL伪指令格式:ADRL{cond} register, expr
地址表达式expr的取值范围:
当地址值是字节对齐时,其取指范围为: -64K~64K;
当地址值是字对齐时,其取指范围为: -256K~256K;
3、LDR伪指令-----大范围的地址读取
LDR伪指令用于加载32位的立即数或一个地址值到指定寄存器。在汇编编译源程序时,
LDR伪指令被编译器替换成一条合适的指令。若加载的常数未超出MOV或MVN的范围,
则使用MOV或MVN指令代替该LDR伪指令,否则汇编器将常量放入文字池,
并使用一条程序相对偏移的LDR指令从文字池读出常量。
关键字:ARM 伪指令 地址读取 ADR ADRL LDR
引用地址:
ARM伪指令之地址读取:ADR/ADRL/LDR
推荐阅读最新更新时间:2024-03-16 15:00
inux之ARM (I.MX6ULL) EPIT定时器详解
定时器是最常用的外设,常常需要使用定时器来完成精准的定时功能, I.MX6U 提供了多种硬件定时器,有些定时器功能非常强大。我们从最基本的 EPIT 定时器开始,学习如何配置 EPIT 定时器,使其按照给定的时间,周期性的产生定时器中断,在定时器中断里面我们可以做其它的处理,比如翻转 LED 灯。 1、EPIT定时器简介 EPIT 的全称是: Enhanced Periodic Interrupt Timer,直译过来就是增强的周期中断定时器,它主要是完成周期性中断定时的。学过 STM32 的话应该知道, STM32 里面的定时器还有很多其它的功能,比如输入捕获、 PWM 输出等等。但是 I.MX6U 的 EPIT 定时器只是
[单片机]
ARM学习规划经典
ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。 从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。 (2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。 (3)哪天若想创业,搞自已的产品,嵌
[单片机]
ARM立即数讲解--LDR和MOV的区别
Mov 是把立即数赋给一个寄存器,但对立即数的范围有要求。只能是由8bit连续有效位通过偶数次移位能得到的数。如果立即数超出这个范围,就没办法用一条MOV指令给寄存器赋值。 LDR除了普通的读数之外,也有给寄存器赋立即数的功能。 你只要写 LDR R0,=0xabcdef 它没有立即数范围的限制。因为这是一条伪指令。如果立即数在MOV的要求内,那就用一条汇编来实现。如果不在Mov的范围内,就用其它方式实现,如变成两条指令,或从PC偏移地址读一个32位数给寄存器。 MOV是从一个寄存器或者移位的寄存器或者立即数的值传递到另外一个寄存器 从本质上是寄存器到寄存器的传递,为什么会有立即数,其实也是有限制的立即数,不是所有立即数都可以
[单片机]
ARM年度技术论坛 11/30新竹烟波饭店隆重登场
ARM诚挚邀请您一同掌握科技新知,同步创造崭新视野,ARM于11月8日公布首度获 得CMS Cameron McKenna 2006年英国年度最佳企业奖 ARM即将于11月30日假新竹烟波饭店,举办“ARM Connected Community Technical Symposium-ARM年度技术论坛”。今年的年度技术论坛,以“Solution through Partnership”为主轴,强调合作伙伴社群对嵌入式系统设计的重要性,并首度以“处理器核心”、“手机软件解决方案”、“嵌入式开发工具”及“ Library及其Implementation Flow”四大议题,针对嵌入式设计的各个环节开授专题课程
[焦点新闻]
基于ARM7内核LPC2119芯片实现双向DC/DC变换器的设计
为了实现直流能量的双向传输,双向DC/DC变换器被广泛应用于UPS系统、航天电源系统、电动汽车驱动及蓄电池充放电维护等场合。 在这些应用当中,很多时候都要求开关电源不仅能够控制能量的双向流动,还要能够实现低压、大电流的输出。在开关频率不太高的情况下,随着输出电压的降低、输出电流的增加,整流损耗就成了影响开关电源效率的主要冈素。因此,为了提高开关电源的效率,就必须设法降低整流损耗。而在本文中采用的同步整流技术就是一种降低整流损耗的有效手段。 在以往的电源设计当中,模拟控制技术因其动态响应快、无量化误差、价格低廉等优点而被广泛应崩;而数字控制技术则由于其成本和技术等方面的因素而较少得到应用。近年来,随着半导体技术的不断发展,数
[单片机]
ARM中的STM/LDM指令
STM/LDM是批量传输数据的指令,这里要说明的是[15:0]Register list代表了16个寄存器,传输数据的时候R15始终是最后传输的,按照从R0到R15的顺序,R15始终在高地址。 递增传输倒好理解,关键是递减传输,2440的datasheet令我费解,看看datasheet里的一张图 假设Rn = R0, R0 = 0x1000,STMDB R0!, { R1, R5, R7 }这样一条指令,先存储R1,执行之后R0的值是多少?图上并没有标注,并不能按照R0 -= 4, = R1, R0 -= 4, = R4, R0 -= 4, = R7这种方式来理解,如果按照R7,R5,R1的顺序来存储就好理解了,但
[单片机]
基于ARM和μC/OS-II的无线数据采集系统设计
无线数据采集系统的应用范围非常广泛,涉及电力、水利、交通和安防等行业。通用分组无线业务GPRS(General Packet Radio Service),由Nokia、Ericsson等公司开发。该技术建立在GSM网络的基础上,被称为2.5代移动通信技术,它将无线通信与Internet紧密结合,是一种先进的、全新的无线网络承载手段,具有独特优势。随着GPRS技术在移动通信领域的发展,为数据采集传输及监控提供了一种新的高性价比的数据通信方案 。
同时,嵌入式系统以其高效的开发、低廉的成本、方便的使用和维护等优点受到信息业界的广泛推崇。嵌入式系统在工农业控制领域主要用于对现场的监视和控制。而传统监控产品的设计目标往往为保
[嵌入式]