ARM体系结构与编程-2

发布者:cocolang最新更新时间:2020-04-03 来源: eefocus关键字:ARM  体系结构  编程 手机看文章 扫描二维码
随时随地手机看文章

ARM汇编语言程序设计:ARM汇编语言源程序中的语句由指令、伪操作和宏指令组成。ARM指令已经在上一节介绍过了。


ARM伪操作和宏指令分类:

<1>符号定义伪操作

GBLA:声明一个全局的算术变量,并将其初始化为0。 语法:GBLA variable

GBLL:声明一个全局的逻辑变量,并将其初始化为FALSE 语法:GBLL variable

GBLS:声明一个全局的串变量,并将其初始化为空串“” 语法:GBLS variable

LCLA:声明一个局部的算术变量,并将其初始化为0 语法:LCLA variable

LCLL:声明一个局部的逻辑变量,并将其初始化为FALSE 语法:LCLL variable

LCLS:声明一个局部的串变量,并将其初始化为空串“” 语法:LCLS variable

SETA:给一个算术变量赋值 语法:SETA variable expr

SETL:给一个逻辑变量赋值 语法:SETL variable expr

SETS:给一个串变量赋值 语法:SETS variable expr

RLIST:为一个通用寄存器列表定义名称 语法:name RLIST {list-of-registers}

CN:为一个协处理器的寄存器定义名称 语法:name CN expr

CP:为一个协处理器定义名称 语法:name CP expr


<2>数据定义伪操作

LTORG:用于声明一个数据缓冲池的开始 语法:LTORG

MAP:用于定义一个结构化的内存表的首地址 语法:MAP expr{, base-register}

FIELD:用于定义一个结构化的内存表中的数据域,#是FIELD的同义词 语法:{label} FIELD expr

SPACE:用于分配一块内存单元,并用0初始化,%是SPACE的同义词 语法:{label} SPACE expr

DCB:用于分配一段字节内存单元,并用expr初始化,=是DCB的同义词 语法:{label} DCB expr

DCD:用于分配一段字内存单元,并用expr初始化,&是DCD的同义词 语法:{label} DCD expr


<3>汇编控制伪操作

IF,ELSE及ENDIF:[是IF伪操作的同义词,|是ELSE伪操作的同义词,]是ENDIF伪操作的同义词。


WHILE及WEND:

MACRO及MEND:语法:

MACRO 

{$label} macroname {$parameter1{,parameter2}...}

;code

...

;code

MEND

MEXIT:用于从宏中跳转出去


<4>框架描述伪操作

CODE16:告诉汇编器后面的指令序列为16位的Thumb指令 语法:CODE16

CODE32:告诉汇编器后面的指令序列为32位的ARM指令 语法:CODE32

EQU:为数字常量和程序中的标号定义一个字符名称,*是EQU的同义词。 语法:name EQU expr{, type}

AREA:用于定义一个代码段或者数据段。一个大的程序可以包含多个代码段和数据段。一个汇编程序至少包含一个段。 语法:AREA sectionname{,attr1}{,attr2}...

ENTRY:指定程序的入口点。一个程序中至少要有一个ENTRY,一个源文件中最多只能有一个ENTRY 语法:ENTRY

END:告诉汇编器已经到了源程序的结尾。每个汇编程序都包含END,以告知本源程序的结束。


ALIGN:通过添加补丁字节,使得当前位置满足一定的对齐方式。 语法:ALIGN {expr,{, offset}}

EXPORT:声明一个符号可以被其他文件引用,相当于声明了一个全局变量。 语法:EXPORT symbol{[WEAK]}

IMPORT:告诉汇编器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源文件中可以引用该符号。不论本源文件是否引用,该符号都将被加入到本源文件的符号表中。 语法:IMPORT symbol{[WEAK]}

EXTERN:告诉汇编器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源文件中可以引用该符号。如果本源文件实际上没有引用该符号,它将不会被加入到本源文件的符号表中。 语法:EXTERN symbol{[WEAK]}

GET及INCLUDE;将一个源文件包含到当前源文件中,并将被包含的文件在当前位置进行汇编处理。 语法:GET filename


<5>信息报告伪操作

ASSERT:用于保证源程序被汇编时满足相关条件,如果条件不满足,ASSERT伪操作报告错误类型并终止汇编。 语法:ASSERT logical-expression


<6>杂项伪操作

ARM汇编语言伪指令:这些伪指令不是真正的ARM或Thumb指令,这些伪指令在汇编时被替换成对应的ARM或Thumb指令。


ADR伪指令:小范围的地址读取指令,该指令将基于PC的地址或者基于寄存器的地址读取到寄存器中。该指令在汇编时被替换成一条指令。


语法:ADR{cond} register, expr

ADRL伪指令:中等范围的地址读取指令,该指令将基于PC的地址或者基于寄存器的地址读取到寄存器中。该指令在汇编时被替换成两条指令。


语法:ADRL{cond} register, expr

LDR伪指令:大范围的地址读取指令,该指令将一个32位常数或地址值读取到寄存器中。

语法:LDR{cond} register, =expr

NOP:空操作指令


ARM汇编语言语句格式:如下:

{symbol} {instruction|directive|pseudo-instruction} {;commnet}

symbol:符号

instrution:指令,在ARM汇编语言中,指令不能从一行的行头开始,在一行语句中,指令的前面必须有空格或者符号

directive:伪操作

pseudo-instruction:伪指令

comment:语句注释。在ARM汇编语言中,注释以;开头。


ARM汇编语言程序格式:ARM汇编语言以段(section)为单位组织源文件,段又分为代码段、数据段。一个ARM源程序至少需要一个代码段,大的程序可以包含多个代码段和数据段。

关键字:ARM  体系结构  编程 引用地址:ARM体系结构与编程-2

上一篇:ARM异常返回修正值
下一篇:ARM体系结构与编程-3

推荐阅读最新更新时间:2024-11-10 14:08

英特尔CEO:信不信?中国厂商将很快放弃ARM技术
英特尔CEO科再奇(Brian Krzanich)预计,中国的半导体合作伙伴将在未来几年内放弃ARM技术而转用英特尔的架构。目前,ARM技术被广泛应用于智能手机和平板电脑产品。 今年,英特尔已经与瑞芯微电子和展讯通信签订了合作协议,后者将利用英特尔技术为瞄准中国快速增长的消费者市场的廉价智能手机和平板电脑开发芯片。 展讯通信和瑞芯微电子专营易用性很高的总控智能手机和平板电脑平台。它们在设计芯片时通常使用的是英国ARM Holdings授权的技术。ARM是英特尔最主要的竞争对手。 虽然中国芯片厂商与英特尔签订的协议并未禁止它们继续开发基于ARM架构的芯片,但是科再奇相信,在过两三年,它们将只使用英特尔的架构。  
[单片机]
plc编程器的工作原理
可编程控制器,英文称ProgrammableLogicController,简称PLC。PLC是基于电子计算机,且适用于工业现场工作的电控制器。它源于继电控制装置,但它不像继电装置那样,通过电路的物理过程实现控制,而主要靠运行存储于PLC内存中的程序,进行入出信息变换实现控制。 PLC基于电子计算机,但并不等同于普通计算机。普遍计算机进行入出信息变换,多只考虑信息本身,信息的入出,只要人机界面好就可以了。而PLC则还要考虑信息入出的可靠性、实时性,以及信息的使用等问题。特别要考虑怎么适应于工业环境,如便于安装,抗干扰等问题。 PLC编程器的工作原理可以简单地概括为:将用户编写的PLC程序下载到PLC控制器中,实现对工业生产
[嵌入式]
Arm联手中国联通完善中国物联网生态发展
Arm宣布与中国联通旗下联通物联网有限责任公司(以下简称“ 物联网公司” )的合作取得了最新进展,Arm已成功部署基于Arm Pelion设备管理平台与Mbed OS操作系统所打造的全新物联网平台,加速推进和完善中国物联网生态发展。 Arm预测,到2035年,从受限设备到全功能终端节点或网关等物联网设备数量将达到1万亿台,所有设备都将需要安全的远程管理。为此,Arm推出Pelion物联网平台,整合设备管理、连接管理、数据管理功能,加上专为物联网设计的Mbed OS操作系统,支持任意设备进行灵活的云端部署,进一步消除物联网复杂性与碎片化的阻碍。 Arm于今年二月巴塞罗那MWC上首次公开与中国联通物联网的深度合作。经过四个多月
[物联网]
<font color='red'>Arm</font>联手中国联通完善中国物联网生态发展
ARM汇编伪指令:.word说明
word expression就是在当前位置放一个word型的值,这个值就是expression 举例来说, _rWTCON: .word 0x15300000 ;就是在当前地址,即_rWTCON处放一个值0x15300000 翻译成intel的汇编语句就是: _rWTCON dw 0x15300000 例如: ldr r1, _rWTCON _rWTCON: .word 0x15300000 不是把地址0x1530 0000 上的内容传递到r1,是把地址_rWTCON上的内容放到r1,而地址_rWTCON上的内容是0x15300000。实际上就是把r1设置为0x15300000
[单片机]
浅析单片机、ARM、FPGA 、嵌入式的特点
单片机的特点: (1)受集成度限制,片内存储器容量较小,一般内ROM:8KB以下;(2)内RAM:256KB以内。(3)可靠性高(4)易扩展(5)控制功能强(6)易于开发 ARM的特点: (1) 自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程序开发实验更加方便,工作更可靠。 (2) 高速度,低功耗。在和M51单片机外接相同晶振条件下,AVR单片机的工作速度是M51单片机的30-40倍;并且增加了休眠功能及CMOS技术,使其功耗远低于M51单片机。 (3) 工业级产品。具有大电流输出可直接驱动SSR和继电器,有看门狗定时器,防止程序走飞,从而提高了产品的抗干扰能力。 (4
[单片机]
浅析单片机、<font color='red'>ARM</font>、FPGA 、嵌入式的特点
ARM处理器的嵌入式新浪微博客户端设计
引言 随着物联网技术的迅速发展,许多嵌入式系统具备了联网功能,为方便系统开发者集中监控和管理远程嵌入式系统,同时方便其他PC网上用户或智能手机App能够获取嵌入式系统数据,实现远程读数与控制 ,本文提出了以STM32F103RC处理器为核心,结合WIZnet公司的W5500以太网接口芯片,利用新浪微博的二次开发接口 ,设计了嵌入式新浪微博客户端,从而实现社交网络与嵌入式硬件系统的互动,可以把人与人的关系拓展到人与物的关系、物与物的关系。本系统结构如图1所示。 1 系统主要硬件介绍 1.1 STM32F103RC微控制器 STM32F103RC是基于CortexM3内核的32位ARM处理器芯片,其工作频率可达7
[单片机]
<font color='red'>ARM</font>处理器的嵌入式新浪微博客户端设计
ARM与不同位宽存储器的地址线错位接口 , 外部总线接口深
ARM是32位,地址空间是2的32次幂,4G地址空间。所有的外设(FLASH,RAM,SD卡等等)都映射到这4G的空间上。比如大部分ARM7都把 RAM映射到0x40000000,所以对RAM的操作就在0X40000000开始的地址上。FLASH从0X0开始。使用FLASH还要考虑地址重映 射,就是选择片内FLASH或片外FLASH。 FLASH一般是8位或16位,当它接到32位的ARM上时,地址位就会错位。对于16位FLASH,FLASH的A0要接ARM的A1。对于8位 FLASH,FLASH的A0要接ARM的A0。ARM的A0对应8位,ARM的A1对应16位,ARM的A2对应32位,如果FLASH 是32位,那么FLASH
[单片机]
<font color='red'>ARM</font>与不同位宽存储器的地址线错位接口 , 外部总线接口深
研华推出集控制与通讯为一体的可编程自动化控制器APAX-6572
研华科技,2013年5月 ——全球领先的创新嵌入式产业电脑&自动化解决方案提供厂商研华科技推出全新可编程自动化控制器APAX-6572,其专为降低设备间集成成本而开发。APAX-6572是一款集数据采集与控制技术为一体的嵌入式控制器,非常适用于工厂数据采集与控制应用和辅助控制单元。 研华可编程自动化控制器APAX-6572 可编程自动化控制器APAX-6572采用Intel Atom D510 1.66GHz处理器,2GB RAM,拥有3个千兆以太网口,2个COM端口,1个VGA和4个USB 2.0端口。APAX-6572具备4个扩展槽,可通过连接4个APAX-5090P通讯模块,COM端口最多可扩展至18个;通过连接4
[嵌入式]
研华推出集控制与通讯为一体的可<font color='red'>编程</font>自动化控制器APAX-6572
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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