ARM汇编语言程序设计习题

ARM汇编语言程序设计习题

ID:39302858

大小:437.60 KB

页数:115页

时间:2019-06-30

ARM汇编语言程序设计习题_第1页
ARM汇编语言程序设计习题_第2页
ARM汇编语言程序设计习题_第3页
ARM汇编语言程序设计习题_第4页
ARM汇编语言程序设计习题_第5页
资源描述:

《ARM汇编语言程序设计习题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章ARM指令集和汇编语言程序本章主要介绍以下内容:ARM汇编语言程序格式典型ARM汇编语言程序举例ARM汇编与C,C++混合编程1嵌入式系统开发中汇编语言设计的意义汇编语言程序设计更能充分发挥处理器的硬件特性两个优势操作系统移植需要编写几百行底层硬件的汇编语言程序,这是C语言不可取代的。优化算法的时空效率,C语言的目标代码优化是编译器完成的,而汇编语言的目标代码优化是人工完成的。人是算法的创造者,也是编译器的设计者,人工优化比编译器质量高。弱点编程效率低,开发周期长,经济代价大。25.1ARM汇编语言程序格式两种ARM汇编语言格式ARM汇编语言程序格式主要有

2、两种:基于ADS1.2集成开发环境的汇编器格式包括SDT在内,统称为ADS基于Linux的GNU汇编器格式在本章主要介绍基于ARM公司ADS集成开发环境汇编器格式的汇编语言程序设计。在后面将介绍基于GNU汇编器的ARM汇编语言程序编写方法。3预定义寄存器名及内部变量名ARM汇编器中将几十个寄存器名称作为保留字预先给与了定义,这些预定义寄存器名都是大小写敏感的,它们都与具体的寄存器一一对应。参看下面的表格。4ARM公司ADS预定义的寄存器名一览表预定义寄存器名描述r0-r15andR0-R15ARM处理器的通用寄存器a1-a4入口参数,处理结果,暂存寄存器;r0-

3、r3的同义词v1-v8变量寄存器,r4-r11sbandSB静态基址寄存器,r9slandSL栈界限寄存器,r10fpandFP帧指针寄存器,r11ipandIP内部过程调用暂存寄存器,r12spandSP栈指针寄存器,r135ARM公司ADS预定义的寄存器名一览表(续)预定义寄存器名描述lrandLR连接寄存器,r14pcandPC程序寄存器,r15cpsrandCPSR当前程序状态寄存器spsrandSPSR保存的程序状态寄存器f0-f7andF0-F7浮点数运算加速寄存器s0-s31andS0-S31单精度向量浮点数运算寄存器d0-d15andD0-D15

4、双精度向量浮点数运算寄存器p0-p15协处理器0-15c0-c15协处理器寄存器0-156ARM汇编语言程序的部分内部变量名清单内部变量描述{PC}or.当前指令地址{VAR}or@内存区定位计数器的当前值{TRUE}逻辑值真{FALSE}逻辑值假{CONFIG}汇编器如果在汇编ARM指令,取值为32,如果汇编Thumb指令,取值16{ENDIAN}如果汇编器是大端序,则取值big;如果是小端序,则取值little。{CPU}被选择的CPU名称。缺省值是ARM7TDMI。{ARCHITECTURE}该变量内容是被选择的ARM体系结构的名称。如:3,3M,4T{C

5、ODESIZE}{CONFIG}的同义词7ARM汇编语言程序的语句格式ARM汇编语言程序的语句格式格式如下:{symbol}{instruction

6、directive

7、pseudo-instruction}{;comment}对应的中文语句格式描述是:{符号(标号)}{指令

8、指示符

9、伪指令}{;注释}语句格式中,花括号括起来的部分表示可以省略;竖线分隔的字段表示可以替换。8ARM汇编语言程序中的符号ARM汇编语句中的符号可以是指令地址或标号、变量、常量和局部标号,符号属性可以是程序相关的、寄存器相关的或者是绝对地址。9(一)符号命名和书写规则符号的命名和书写有

10、以下规则:①符号命名可以使用大小写字母,数字和下划线。②符号是大小写字母敏感的。③除本地行号外,名称不能以数字开头。④一个程序段中不能重名。⑤符号在其作用范围内必须唯一。⑥符号不能够与系统内部变量或者系统预定义的符号同名。例如:a1orR0、sp、cpsr、{PC}or.、{VAR}or@、{CONFIG}、{CPU}等等。10符号命名和书写规则(续)⑦当程序中的符号与指令助记符或者指示符同名时,用双竖线将符号括起来。如

11、

12、buffe_a

13、

14、,这时双竖线并不是符号的组成部分。⑧在ARM汇编语言程序中,所有符号必须在一行的最左边位置开始书写,即所谓的顶格书写,不允

15、许包含空格或者制表符。⑨符号的字符序列中不能大小写字母相混杂。11(二)常量ARM汇编语言中使用到的常量可以是数字常量、字符常量、字符串常量和布尔常量。数字常量有以下3种表示方式:1)十进制数,如:535,246。2)十六进制数,如:0x645,0xff00。3)n进制数,格式为n_XXX,其中n表示n进制,从2~9,XXX是具体的数字。例如:8_3777,8_5237702数字常量12字符常量字符常量由一对单引号括起来,包括一个单字符或者标准C中的转义字符。例如:’A’,’’。字符串常量由一对双引号以及由它括住的一组字符串组成,包括标准C中的转义字符。如果

16、需要使用双引号或字符$,

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

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

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