ARM 汇编&ARM 指令集

发布者:GoldenEclipse最新更新时间:2015-10-27 来源: eefocus关键字:ARM  汇编  指令集 手机看文章 扫描二维码
随时随地手机看文章
ARM 处理器寻址方式

1、寄存器寻址

操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值操作

 

MOV R1,R2 ;R2 -> R1
SUB R0,R1,R2 ;R1 - R2 -> R0

 

2、立即寻址

地址码部分就是操作数,(操作数)立即数就在指令中

SUBS R0,R0,#1 ;R0 – 1 -> R0
MOV R0,#0xff00 ;0xff00 -> R0

 

3、寄存器偏移寻址

 

MOV R0,R2,LSL #3 ;R2 的值左移3 位,结果放入R0,即R0 = R2 * 8
ANDS R1,R1,R2,LSL R3 ;R2 的值左移R3 位,然后和R1 相与操作,结果放入R1

 

4、寄存器间接寻址

寄存器为操作数的地址指针

LDR R1,[R2] ;将R2 中的数值作为地址,取出此地址中的数据保存在R1 中
SWP R1,R1,[R2];将如中的数值作为地址,取出此地址中的数值与R1 中的值交换

 

5、基址寻址

将基址寄存器的内容与偏移量相加,形成操作数的有效地址,用于访问寄存器附近存储单元

 

LDR R2,[R3,#0x0F] ;将R3 中的数值加0x0F 作为地址,取出此地址的数值保存在R2 中
STR R1,[R0,#-2] ;将R0 中的数值减2 作为地址,把R1 中的内容保存到此地址位置

 

6、多寄存器寻址

多寄存器寻址就是一次可以传送几个寄存器值,允许一条指令传送 16 个寄存器的任何子集或所有寄存器。

 

LDMIA R1!,{R2-R7,R12} ;将R1 单元中的数据读出到R2-R7,R12,R1 自动加1
STMIA R0!,{R3-R6,R10};将R3-R6,R10 中的数据保存到R0 指向的地址,R0 自动加1

 

7、堆栈寻址

堆栈是特定顺序进行存取的存储区,操作顺序分为“后进先出”和“先进后出”,
堆栈寻址时隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),
指针所指向的存储单元就是堆栈的栈顶。存储器堆栈可分为两种:
向上生长:向高地址方向生长,称为递增堆栈
向下生长:向低地址方向生长,称为递减堆栈
堆栈指针指向最后压入的堆栈的有效数据项,称为满堆栈;堆栈指针指向下一个要
放入的空位置,称为空堆栈。这样就有4 中类型的堆栈表示递增和递减的满堆栈和空堆
栈的各种组合。
满递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向内含有效数据项的
最高地址。指令如LDMFA,STMFA 等。
空递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈上的第一个空
位置。指令如LDMEA,STMEA 等。

关键字:ARM  汇编  指令集 引用地址:ARM 汇编&ARM 指令集

上一篇:如何新建一个keil4ARM工程
下一篇:嵌入式linux 电阻触摸屏 (s3c2440)编程

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

黄仁勋:英伟达不是非要收购Arm不可
据国外媒体报道,英伟达400亿美元收购Arm的交易,自去年9月13日宣布以来就备受关注,此前也曾有外媒在报道中表示,多家硅谷的科技巨头,反对英伟达收购Arm,Arm的联合创始人赫尔曼·豪瑟,也反对英伟达收购。 虽然收购Arm有多方面的阻力,但英伟达还是在推进这一交易,英伟达CEO黄仁勋,也在尽力打消外界,尤其是芯片厂商对这一收购交易的顾虑。    近日在参加一次线上峰会时,黄仁勋就再次谈到了英伟达对Arm的收购交易。    黄仁勋表示,他们并非一定要收购Arm不可,英伟达自身做的很好,也有宏大的发展战略,他们想收购英伟达,是因为这一收购将扩大英伟达的生态系统范围,并且会帮助Arm进入新的市场。    自英伟达宣布同软银达成收
[半导体设计/制造]
黄仁勋:英伟达不是非要收购<font color='red'>Arm</font>不可
基于ARM7处理器的CAN总线网络设计
1 引言 can(controller area network)即控制器局域网络,最初是由德国bosch公司为解决汽车监控系统中的自动化系统集成而设计的数字信号通信协议,属于总线式串行通信网络。由于can总线自身的特点,其应用领域由汽车行业扩展到过程控制、机械制造、机器人和楼宇自动化等领域,被公认为最有发展前景的现场总线之一。 can总线系统网络拓扑结构采用总线式结构,其结构简单、成本低,并且采用无源抽头连接,系统可靠性高。本设计在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等持点。 2 系统总体方案设计 整个can网络由上位机(上位机也是网络节点)和各网络节点组成(见图1)。上位机
[单片机]
基于ARM核的ADμC7024在医疗电子中的应用
0 引言   随着信息技术的迅猛发展和人民生活水平的提高,极大地推动了医疗电子设备的发展,当今医疗电子设备的发展趋势是高精度、实时性、低功耗和小尺寸,作为医疗电子设备中核心地位的MCU(微处理器)也随着这一发展趋势向前不断衍变着。由早期的8位MCU发展到目前的32位RISC(精简指令集计算机)MCU。美国ADI公司根据市场的需要最新推出了一款基于ARM(高级精简指令集计算机)核的微处理器ADμC7024便是目前32位RISC MCU的杰出代表。ADμC7024卓越的处理能力、集成众多片上外围器件和芯片低功耗的特点,完全胜任目前医疗电子设备的需求及未来的发展目标。   本文以ADμC7024在医疗电子中监护产品脉搏血氧计的应用为
[应用]
ARM军团大集结,未来技术亮相CITE2020
作为中国电子信息产业的窗口和引领产业发展风向标,第八届中国电子信息博览会(CITE2020)即将于8月14-16日在深圳会展中心盛大召开。绿色计算产业联盟(GCC)召集业内ARM相关重磅生态伙伴,将在中国电子信息博览会1号馆1A020号展区闪亮登场,此外,GCC主办的2020绿色计算标准与产业峰会将于8月15日在五层玫瑰厅3召开,欢迎业界专家拨冗出席。 展示四大价值场景评测,打造权威评测平台 随着大数据、物联网、人工智能等新兴应用对绿色计算需求的不断增长,需要更高性能、更低能耗、更开放的绿色计算产品、服务及解决方案,来满足用户对绿色计算的迫切需求。尤其是以ARM架构为代表的绿色计算处理器、服务器蓬勃发展,目前已经在众多应用
[物联网]
<font color='red'>ARM</font>军团大集结,未来技术亮相CITE2020
ARM启动代码中_main 与用户主程序main()的区别
STM32启动代码主要是分配堆栈及设置向量表,然后跳转到__main函数。 跳转具体到代码段部分如下: Reset_Handler PROC EXPORT Reset_Handler IMPORT __main LDR R0, = __main BX R0 ENDP 当您看到__main函数时,估计应该有不少人认为这个是main函数的别名或是编译之后的名字,否则在启动代码中再也无法找到和main相关的字眼了。可事实是,__main和main是完全两个不同的函数,并且你无法找到__main代码,因为这个是编译器
[单片机]
浅谈μCOSII在Cortex-M3核的ARM处理器上的移植
随着科学技术的发展,嵌入式技术已被广泛应用到汽车电子、无线通信、数码产品等各个领域。嵌入式操作系统及嵌入式处理器技术发展迅猛,嵌入式操作系统典型代表有μCOS—II、μClinux、Winclow CE、VxWorks等;嵌入式处理器包括ARM、MIPS、PowerPC等。 1 软硬件开发环境及处理器介绍 1.1 软件硬开发环境 本移植过程使用的软件环境是RealView MDK开发套件,此产品是ARM公司最新推出的针对各种嵌入式处理器的软件开发工具,该开发套件功能强大,包括了μVisiON3集成开发环境和RealView编译器。使用的硬件平台是深圳英蓓特公司推出的全功能评估板STMl03V100,其上所采用的处理器是S
[工业控制]
浅谈μCOSII在Cortex-M3核的<font color='red'>ARM</font>处理器上的移植
频繁收购,Arm的物联网野望与危机
摘要:自从被软银收购之后,Arm在物联网领域的布局就没有停止过,无论是搭建物联网设备平台还是收购数据管理公司,Arm对于物联网发展的重点都把握得非常精准。 2016年,当软银以 243 亿英镑收购Arm时,他们想要的可不止是手机市场。相反,它们看中的是可以将各种设备连入互联网的低功耗芯片,也就是所谓的物联网芯片。 进入2018年,Arm明显加快了在物联网领域的布局。 6月13日,Arm宣布收购物联网连接管理技术提供公司Stream Technologies。7月30日,Arm收购数据分析公司Treasure data。 对于这一系列收购,Arm的目标到底是什么? Arm与物联网 不可否认,在移动时代,A
[物联网]
频繁收购,<font color='red'>Arm</font>的物联网野望与危机
基于Keil MDK-ARM 和 IAR EWARM进行仿真打印的配置
1写在前面 很多初学者习惯使用软件仿真,应该是很多人都知道的一款仿真软件。 以前开发板相对较贵,且快递不方便,使用仿真软件可以理解。现在便宜的STM32开发板就十几块,还用仿真软件,我不是很理解。 有经验的人都知道,仿真和实际运行情况很多时候都不一样,相信不用我说,大家都明白。 因此,我个人不是很推荐大家仿真,本文内容可能存在纰漏,仅限个人学习。 下面讲述基于Keil MDK-ARM 和 IAR EWARM进行仿真打印的配置。 2Keil仿真打印配置 Keil MDK-ARM不能仿真,原因出在仿真参数出现了问题: 修改这两处参数为:DARMSTM.DLL -pSTM32F103ZE 基于前面使用STM32CubeMX生成工
[单片机]
基于Keil MDK-<font color='red'>ARM</font> 和 IAR EWARM进行仿真打印的配置
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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