arm汇编语言编程详解

arm汇编语言编程详解

ID:5369851

大小:506.30 KB

页数:74页

时间:2017-12-08

arm汇编语言编程详解_第1页
arm汇编语言编程详解_第2页
arm汇编语言编程详解_第3页
arm汇编语言编程详解_第4页
arm汇编语言编程详解_第5页
资源描述:

《arm汇编语言编程详解》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ARM汇编语言编程详解硅谷芯微嵌入式学院技术贡献网址:www.threeway.cc4.1汇编语言使用汇编语言编写程序,它的特点是程序执行速度快,程序代码生成量少,但汇编语言是一种不易学习的编程语言,并且可读性较差,这种语言属于低级语言。每一种汇编语言对应每一款芯片,使用这种语言需要对硬件有深刻的了解。在通常情况下,可以使用汇编语言编写驱动程序、需要严格计算执行时间的程序以及需要加速执行的程序。•4.1.1ARM汇编程序的格式(1)先介绍一个例子来说明ARM汇编程序的格式。例1计算20+8,结果放入R0寄存器。AREABuf,DATA,READWRITE;声明数据段BufCount

2、DCB20;定义一个字节单元CountAREAExample,CODE,READONLY;声明代码段ExampleENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRBR0,Count;R0=Count=20MOVR1,#8;R1=8ADDR0,R0,R1;R0=R0+R1BSTARTEND•4.1.1ARM汇编程序的格式(2)例1中定义了两个段:数据段Buf和代码段Example。数据段中定义了字节单元Count,其中Count用来保存一个被加数;代码段中包含了所有源程序代码,程序中首先读取Count字节单元的内容,然后与立即数8相加,计算结果保存到R0中。

3、由例1可见,ARM汇编语言的源程序是分段的,由若干个段组成一个源程序。源程序的一般格式为:AREAname1,attr;声明特定的段标号语句1;语句...语句nAREAname2,attr标号语句n+1...语句n+mEND;结束符•4.1.1ARM汇编程序的格式(3)每一个段都有一个名字,并且段名是唯一的。每个段以符号AREA作为段的开始,以碰到下一个符号AREA作为该段的结束。段都有自己的属性,如是代码段(CODE)还是数据段(DATA),是只读(READONLY)还是可读写(READWRITE)?这些属性可以在attr栏中设定。注意:符号AREA和END都不能顶格写,只有标号

4、可以而且必须顶格写。•4.1.1.1ARM汇编程序的书写格式(1)ARM汇编源程序是由若干段组成的,而一个段又是由若干个语句行组成。语句就是完成一个动作的说明。源程序中的语句可以分为以下两种类型:■指令性语句:汇编程序会把指令性语句翻译成机器代码,然后利用这些机器代码命令处理器执行某些操作。如由MOV、ADD等指令构造的语句。■指示性语句:汇编程序并不把它们翻译成机器代码,只是用来指示、引导汇编程序在汇编时进行一些操作。如由ENTRY、AREA等指令构造的语句,我们也称这些指令为伪指令。从例1可知,语句行的基本格式如下:[标号]<指令><操作数>[;注释]•4.1.1.1ARM汇编

5、程序的书写格式(2)在一条语句中,[]号中的内容是可选的。在书写ARM汇编程序时,需要注意以下3点:■标号必须在一行的顶格书写,其后面不要加“:”,对于变量的设置、常量的定义,其标识符必须在一行的顶格书写;而所有指令均不能顶格书写。■汇编器对标识符大小写敏感,书写标号及指令时字母大小写要一致。在ARM汇编程序时,一个ARM指令、伪指令、寄存器名可以全部为大写字母,也可以全部为小写字母,但不要大小写混合使用。■注释使用“;”。注释内容由“;”开始到此行结束,注释可以在一行的顶格书写。例2某一段错误的汇编语言程序。•4.1.1.1ARM汇编程序的书写格式(3)例2某一段错误的汇编语言程

6、序。STARTMOVR0,#1;标号START没有顶格写ABC:MOVR1,#2;标号后不能带:MOVR2,#3;指令不允许顶格书写LOOPMovR2,#3;指令中大小写混合Bloop;无法跳转到loop标号,只有LOOP标号•4.1.1.2语句行的符号(1)任何一个汇编源程序都是由符号组成的。符号分为两大类:指令助记符和用户定义符。指令助记符包括ARM指令、伪指令等,这些符号都是预先定义好的,且具备专用的目的和功能;用户定义符是由用户在编写汇编程序时自行定义的,只在本程序中有意义,不具备通用性。本节所讲的符号特指用户定义符,符号的命名需注意以下规则:■符号由大小写字母、数字以及下

7、划线组成。■符号不能以数字开头(局部标号除外)。■符号区分大小写,且所有字符都是有意义的。■符号在其作用域范围内必须是唯一的。■符号不能与系统内部或系统预定义的符号同名。■符号不要以指令助记符、伪指令同名。符号可以代表地址、数值、变量。当符号代表地址时又称为标号,符号代表某个特定数值时又称为符号常量,•4.1.1.2语句行的符号(2)符号代表变量时又称为变量名。所以符号有3个用途:标号、符号常量、变量名。(1)标号:标号代表一个地址,段内标号的地址在汇编时确定,而段外

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。