ARM汇编指令的一些总结

发布者:翠绿山水最新更新时间:2015-08-13 来源: eefocus关键字:ARM  汇编指令 手机看文章 扫描二维码
随时随地手机看文章
ARM汇编指令很多,但是真正常用的不是很多,而且需要认真琢磨的又更少了。

比较有用的是MOV BL LDR STR

还是通过具体汇编代码来学习吧。

 

 

 

      @ disable watch dog timer      

 

   movr1, #0x53000000  //立即数寻址方式

 

   movr2, #0x0

 

   strr2, [r1]         

 

MOV没有什么好说的,只要掌握几个寻址方式就可以了,而且ARM的寻址方式比386的简单很多。立即数寻址方式,立即数要求以“#”作前缀,对于十六进制的数,还要求在#后面加上0x或者&。0x大家很好理解。有一次我碰到了&ff这个数,现在才明白跟0xff是一样的。

STR是比较重要的指令了,跟它对应的是LDR。ARM指令集是加载/存储型的,也就是说它只处理在寄存器中的数据。那么对于系统存储器的访问就经常用到STR和LDR了。STR是把寄存器上的数据传输到指定地址的存储器上。它的格式我个人认为很特殊:

   STR(条件) 源寄存器,<存储器地址>

比如STR R0, [R1],意思是R0-> [R1],它把源寄存器写在前面,跟MOV、LDR都相反。

LDR应该是非常常见了。LDR就是把数据从存储器传输到寄存器上。而且有个伪指令也是LDR,因此我有个百思不得其解的问题。看这段代码:

movr1, #GPIO_CTL_BASE

 

   addr1, r1, #oGPIO_F

 

   ldrr2,=0x55aa  // 0x55aa是个立即数啊,前面加个=干什么?

 

   strr2, [r1, #oGPIO_CON]

 

   movr2, #0xff

 

   strr2, [r1, #oGPIO_UP]

 

   movr2, #0x00

 

   strr2, [r1, #oGPIO_DAT]

 

对于当中的ldr那句,我就不明白了,如果你把=去掉,是不能通过编译的。我查了一些资料,个人感觉知道了原因:这个=应该表示LDR不是ARM指令,而是伪指令。作为伪指令的时候,LDR的格式如下:

   LDR寄存器,=数字常量/Label

它的作用是把一个32位的地址或者常量调入寄存器。嗬嗬,那大家可能会问,

“MOV r2,#0x55aa”也可以啊。应该是这样的。不过,LDR是伪指令啊,也就是说编译时编译器会处理它的。怎么处理的呢?——规则如下:如果该数字常量在MOV指令范围内,汇编器会把这个指令作为MOV。如果不在MOV范围中,汇编器把该常量放在程序后面,用LDR来读取,PC和该常量的偏移量不能超过4KB。

这么一说,虽然似懂非懂,但是能够解释这个语句了。

 

 

 

 

 

 

然后说一下跳转指令。ARM有两种跳转方式。

(1)mov pc <跳转地址〉

 这种向程序计数器PC直接写跳转地址,能在4GB连续空间内任意跳转。

(2)通过B BL BLX BX可以完成在当前指令向前或者向后32MB的地址空间的跳转(为什么是32MB呢?寄存器是32位的,此时的值是24位有符号数,所以32MB)。

B是最简单的跳转指令。要注意的是,跳转指令的实际值不是绝对地址,而是相对地址——是相对当前PC值的一个偏移量,它的值由汇编器计算得出。

BL非常常用。它在跳转之前会在寄存器LR(R14)中保存PC的当前内容。BL的经典用法如下:

       bl NEXT  ; 跳转到NEXT

 

       ……

 

    NEXT

 

       ……

 

       mov pc, lr   ; 从子程序返回。

 

最后提一下Thumb指令。ARM体系结构还支持16位的Thumb指令集。Thumb指令集是ARM指令集的子集,它保留了32位代码优势的同时还大大节省了存储空间。由于Thumb指令集的长度只有16位,所以它的指令比较多。它和ARM各有自己的应用场合。对于系统性能有较高要求,应使用32位存储系统和ARM指令集;对于系统成本和功耗有较高要求,应使用16位存储系统和ARM指令集。

关键字:ARM  汇编指令 引用地址:ARM汇编指令的一些总结

上一篇:ARM汇编伪指令介绍
下一篇:arm BOOT阅读笔记

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

关于arm中的中断处理
中断处理的流程 1.cpu内部的中断控制器收集外部各个中断,经过一个的处理以后在报给cpu 2.然后cpu保存现场,调用中断服务程序(ISR) 3.用ISR去识别相应的中断,然后调用相应的中断处理程序 4.处理完以后就进行清除中断 5.恢复被中断的程序 这就是中断处理的流程,下面是对第一步的过程进行详细的介绍。 根据2440手册上的介绍,把这一部分用一副图进行描述 request sources:中断请求源. 这里的中断请求源被分成了2个不同的类型,一个是有子中断(with sub-register),一个是没有子中断的,从图中可以得知不同的类型在中断的处理过程也是不一样的。 1.with sub-register 的
[单片机]
关于<font color='red'>arm</font>中的中断处理
三星准备丢开ARM,开发RISC-V架构自主CPU内核
今年三星的半导体部门已经开始尝试一些大的飞跃,其运用于Galaxy S7旗舰的Exynos 8890处理器,首次采用了自主定制的CPU内核M1。现在来看,三星正计划扩大芯片定制开发的实力,因为日前根据业内人士透露的消息了解,三星设备解决方案(Device Solution)事业部正在为研发32位的MCU微控制器定制一种CPU内核,并且似乎是以可穿戴设备或物联网市场为目标。 据称,三星研发中的这个CPU内核基于开源的RISC-V指令集架构,而不是我们常见的ARM架构(例如三星旗舰机长期所用的ARMv6-M最新的ARMv8-M架构)。这就意味着,三星不必支付ARM授权许可费。更进一步来说,三星的CPU战略目标正在发生转变,从之前获
[单片机]
研华认证首个ARM-Based Design Partner 携手艾博唯提供可信赖的灵
京,4月 12日,2017–全球智能系统领导厂商研华公司(股票代号:2395)郑重宣布,与北京艾博唯科技有限公司正式签订“Advantech Cer TI fied ARM-Based Design Partner”合作协议,双方将携手为客户提供更加快速、灵活、可信赖的深度开发支持及客制化服务。 艾博唯成为研华首家认证ARM-Based Design Partner 研华科技IoT嵌入式平台事业群中国区总经理许杰弘先生与北京艾博唯科技董事长陈大勇先生代表双方出席现场。双方就本次签约协议达成共识,签订合作协议。许杰弘先生代表研华对艾博唯颁布授权证书,艾博唯正式成为研华首个ARM-Based Design Partner,双方相互
[半导体设计/制造]
采用ARM Cortex-M01处理器的DMX512调光设备的软硬件系统设计
1.引言 DMX512协议是美国剧场技术协会(United-States Institute forTheaterTechnology,USITT)制定的数字多路复用协议,其制定的初衷是为了使舞台、剧场等地所使用的众多的调光器和控制器能相互兼容。虽然它不是一个行业或国家标准,但是由于它的简单性和实用性,自从出台以来,得到了世界各地生产商和使用者普遍承认。在国内也有越来越多的生产厂家在生产或关注采用DMX512协议的数字调光设备。 本文提出了一种基于Cortex-M0单片机的DMX512调光设备的设计方案,该方案能接入2路DMX信号,并进行合并进行调光,并根据内部AD进行硅路温度,电压和电流进行检测,然后报告给控台。 2.C
[单片机]
采用<font color='red'>ARM</font> Cortex-M01处理器的DMX512调光设备的软硬件系统设计
ARM调查显示:机器人将帮助而不是取代人类
根据ARM资助的一项对全球近4000名消费者进行的独立调查显示,仅有少数消费者认为人工智能会导致机器人失控并取代人类就业。下面就随网络通信小编一起来了解一下相关内容吧。 ARM调查显示:机器人将帮助而不是取代人类 考虑到未来人工智能可能逐步成为人们生活某些领域的一部分,30%的消费者指出其最大的缺点是“人们将从事更少或者不同的工作”。但是,受访者仍对机器人持肯定态度,认为它们能够在大部分工作中帮助而不是取代人类,并且承担更多枯燥、危险的工作。 ARM品牌与传播全球营销副总裁Joyce Kim表示:“调查结果所显示的对人工智能的乐观和其可能带来的机遇非常鼓舞人心,但是我们其实刚刚触到人工智能所有潜能的冰山一角。人工智能对就
[网络通信]
基于DSP、DDS和ARM的雷达中频信号模拟器设计与实现
摘要:介绍了一种基于PC+ARM+DSP+DDS体系结构的通用雷达中频信号模拟器。该系统能够模拟多种体制的雷达中频信号,而且不同信号间切换方便、使用灵活。介绍了该系统的硬件设计和在模拟相参脉冲雷达动目标信号中的应用。 关键词:雷达中频信号模拟器 AD9852 TMS320C6416 S3C44B0X 相参 雷达信号模拟器是模拟技术与雷达技术相结合的产物。它通过模拟的方法产生雷达回波信号,以便在实际雷达系统前端不具备的条件下对雷达系统后级进行调试。随着数字技术的进步,高速、超大规模集成电路的使用,雷达信号模拟系统正朝着灵活、通用的方向发展。笔者设计了一种基于PC+ARM+DSP+DDS体系结构的能家长雷达中频信号模拟器,介绍了该
[应用]
ARM CPU与Intel x86 CPU性能比较
随着移动互联网时代的到来,Qualcomm(高通)、Texas Instruments(德州仪器)等基于ARM架构的CPU受到越来越多人的关注,而昔日王者的Intel x86架构由于功耗问题,在移动互联网似乎举步维艰。 Intel x86架构对比于ARM架构来说,性能强大,功耗较高是大家都知道的事实。那Intel x86架构的CPU性能究竟比ARM架构的强多少呢?下面我们对单个Core做一个简单的评测。 我的PC机CPU:Intel Pentium Dual-Core CPU E5300 2.60GHz(Launched 2008Q1 x86) 我手机的CPU:Qualcomm Snapdragon S2 MSM8255 1.0
[单片机]
采用ARM单片机+CPLD实现数字-轴角转换的方法
同步机.正余弦旋转变压器等广泛应用于火力控制.航空航天.自动控制等领域以实现系统间轴角信息的传输.由于计算机技术在上述领域的广泛应用,数字-轴角转换已(Digitalto Shaft-angle Converting,DSC)成为一个重要的问题.市场上DSC集成模块产品价格较高且接口不够灵活,在某些领域应用受到限制,特别在多路DSC使用时效费问题更为突出.基于上述问题,提出一种采用ARM 单片机+CPLD实现数字-轴角转换的方法. 1 数字-轴角转换原理数字-轴角转换(DSC)是将数字形式表示的轴角度θ通过运算电路转换为正余弦旋转变压器形式的电压(如式(1)),经正余弦旋转变压器和经过Scott变压器后驱动同步机指向对
[单片机]
采用<font color='red'>ARM</font>单片机+CPLD实现数字-轴角转换的方法
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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