ARM汇编语言程序设计基础..doc

上传人:灯火****19 文档编号:135216800 上传时间:2020-06-13 格式:DOC 页数:12 大小:1.03MB
返回 下载 相关 举报
ARM汇编语言程序设计基础..doc_第1页
第1页 / 共12页
ARM汇编语言程序设计基础..doc_第2页
第2页 / 共12页
ARM汇编语言程序设计基础..doc_第3页
第3页 / 共12页
ARM汇编语言程序设计基础..doc_第4页
第4页 / 共12页
ARM汇编语言程序设计基础..doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《ARM汇编语言程序设计基础..doc》由会员分享,可在线阅读,更多相关《ARM汇编语言程序设计基础..doc(12页珍藏版)》请在金锄头文库上搜索。

1、第9章 ARM汇编语言程序设计基础ADS IDE(集成开发环境)n ARM应用软件的开发工具根据功能的不同,可以分为编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评估板,JTAG仿真器以及在线仿真器等。目前有多家公司可以提供以上不同类型的开发工具,用户采用ARM处理器进行嵌入式系统开发时,选择合适的开发工具可以加快开发进度,节省开发成本。ADS工具包的组成 n ADS是ARM公司推出的集成开发工具包,是专门用于ARM相关应用开发和调试的综合性软件。目前常用的版本是1.2,在功能和易用性上比早期的SDT都有提高,是一款功能强大又易于使用的开发工具。ARM ADS包

2、含有编译器、链接器、CodeWarrior IDE、调试器、指令集模拟器、ARM开发包和应用库等部分,可以用ADS来开发、编译、调试采用包括C、C+和ARM汇编语言编写的程序。 ADS工具包的组成n 1. 编译器n ADS提供多种编译器,以支持ARM和Thumb指令的编译。n 2. 链接器n Armlink(ARM链接器)可以将编译得到的一个或多个目标文件和相关的一个或多个库文件进行链接,生成一个可执行文件,也可以将多个目标文件部分链接成一个目标文件,以供进一步的链接。ADS工具包的组成n 3. CodeWarrior IDEn CodeWarrior IDE(集成开发环境)包括工程管理器、代

3、码生成接口、语法敏感编辑器、源文件和类浏览器、源代码版本控制系统接口以及文本搜索引擎等。ADS仅在其PC机版本中集成了该IDE。n CodeWarrior IDE为管理和开发项目提供了简单多样化的图形用户界面,用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C、C+或者ARM汇编语言编写的程序代码。ADS工具包的组成n (1)调试器类型n ADS中包含有3个调试器,分别是ARM扩展调试器AXD(ARM eXtended Debugger.n (2)调试方式n 在ARM体系中,可以选择Multi-ICE(Multi-processor in-circuit em

4、ulator)ARMulator或Angel多种调试方式。ADS工具包的组成n 5. ARM开发包和函数库n ARM开发包由一些底层的例程和库组成,可以帮助用户快速开发基于ARM的应用程序和操作系统。n ADS的ARM应用库完善并增强了SDT中的函数库,同时还包括一些非常有用的源码例程。ADS开发工具集 n 1命令行开发工具n (1)armccn armcc是 ARM C 编译器。在命令控制台环境下,输入命令:C: armcc help可以查看 armcc 的语法格式以及最常用的一些操作选项。n (2)armcppn armcpp 是 ARM C+ 编译器。它将 ISO C+ 或 EC+ 编译

5、成 32 位 ARM 指令代码。n (3) tccn tcc 是 Thumb C 编译器。该编译器通过了 Plum Hall C Validation Suite 为 ANSI 一致性的测试。tcc 将 ANSI C 源代码编译成 16 位的 Thumb 指令代码。ADS开发工具集(4) tcppn tcpp 是 Thumb C+ 编译器。 它将 ISO C+ 和 EC+ 源码编译成 16 位 Thumb 指令代码。n (5) armsmn armsm 是 ARM 和 Thumb 的汇编器 . 它对用 ARM 汇编语言和 Thumb 汇编语言写的源代码进行汇编。n (6) armlinkn a

6、rmlink是 ARM 连接器。n (7) armsdn armsd是 ARM 和 Thumb 的符号调试器。ADS开发工具集n 2GUI 开发环境 n ADS GUI开发环境主要包含Code Warrior 和 AXD,其中Code Warrior是用于编译和链接的集成开发工具,而AXD则是支持单步执行、断点设置等功能的集成调试工具。n (1)Code Warrior n Code Warrior for ARM是一套完整的集成开发工具,充分发挥了 ARM RISC指令系统的优势, 使产品开发人员能够很好的应用尖端的片上系统技术 . 该工具是专为基于 ARM RISC 的处理器而设计的 。

7、ADS开发工具集n (2)AXDn AXD调试器本身是一个软件,用户通过这个软件可以对包含有调试信息的、正在运行的可执行代码进行变量的查看、断点的设置、单步执行等调试操作。在ARM体系中,它有Multi-ICE、ARMulator和Angel等几种方式。AXD可以在Windows和UNIX下进行程序的调试,它为用C、C+和汇编语言的源代码提供了一个全面的Windows和UNIX环境。ADS开发工具集n 3、 实用程序n ADS 提供以下的实用工具来配合前面介绍的命令行开发工具的使用。n fromELF是 ARM 映像文件转换工具。n armar是ARM库函数生成器。n Flash downlo

8、ader用于把二进制映像文件下载到ARM嵌入式设备上的 Flash 存储器中。ARM汇编伪指令 n 在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,也就是不会生成机器码,仅仅是在编译器软件中起着格式化的作用,通常称这些特殊指令助记符为伪指令。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。 在 ARM 的汇编程序中,有如下几种伪指令:数据常量定义伪指令、数据变量定义伪指令、内存分配伪指令及其他伪指令。1 数据常量定义伪指令 数据常量定义伪指令EQU用于为程序中的常量

9、、标号等定义一个等效的字符名称,类似于 C 语言中的#define 。 EQU语法格式 :名称 EQU 表达式 ,类型 ;其中 EQU 可用 “ * ” 代替。 名称为 EQU 伪指令定义的字符名称,当表达式为 32 位的常量时,可以指定表达式的数据类型,可以有以下三种类型: CODE16 、 CODE32 和 DATA。2 数据变量定义伪指令(Cont.) n 数据变量定义伪指令用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。常见的数据变量定义伪指令有如下几种: (1)GBLA、GBLL 和GBLS 语法格式:GBLA ( GBLL 或 GBLS ) 全局变量名 GBL

10、A 、 GBLL 和 GBLS 伪指令用于定义全局变量,并将其初始化。其中: GBLA用于定义一个全局的数字变量,并初始化为 0 ; GBLL用于定义一个全局的逻辑变量,并初始化F(假);n GBLS用于定义一个全局的字符串变量,并初始化为空;2 数据变量定义伪指令(Cont.) (2)LCLA、LCLL 和LCLS 语法格式: LCLA ( LCLL 或 LCLS ) 局部变量名 LCLA 、 LCLL 和 LCLS 伪指令用于定义一个 ARM 程序中的局部变量,并将其初始化。其中: LCLA伪指令用于定义一个局部的数字变量,并初始化为 0 ; LCLL伪指令用于定义一个局部的逻辑变量,并初

11、始化为 F(假); LCLS 伪指令用于定义一个局部的字符串变量,并初始化为空;2 数据变量定义伪指令(Cont.) n (3)SETA、SETL 和SETS 语法格式:变量名 SETA ( SETL 或 SETS ) 表达式 伪指令 SETA 、 SETL 、 SETS 用于给一个已经定义的全局变量或局部变量赋值。 SETA 伪指令用于给一个数学变量赋值; SETL 伪指令用于给一个逻辑变量赋值; SETS 伪指令用于给一个字符串变量赋值;2 数据变量定义伪指令(Cont.) (4)RLIST 语法格式:名称 RLIST 寄存器列表 RLIST 伪指令可用于对一个通用寄存器列表定义名称,使用

12、该伪指令定义的名称可在 ARM 指令 LDM/STM 中使用。在 LDM/STM 指令中,列表中的寄存器访问次序为根据寄存器的编号由低到高,而与列表中的寄存器排列次序无关。3 内存分配伪指令 n 内存分配伪指令一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。常见的数据定义伪指令有如下几种:n (1)DCB 语法格式:标号 DCB 表达式n (2) DCW(或DCWU) 语法格式:标号 DCW (或 DCWU ) 表达式3 内存分配伪指令(Cont.) n (3)DCD(或DCDU) 语法格式:标号 DCD (或 DCDU ) 表达式n (4)DCFD(或DCFDU) 语法格

13、式:标号 DCFD (或 DCFDU ) 表达式n (5)DCFS(或DCFSU) 语法格式:标号 DCFS (或 DCFSU ) 表达式3 内存分配伪指令(Cont.) n (6)DCQ(或DCQU) 语法格式:标号 DCQ (或 DCQU ) 表达式n (7) SPACE 语法格式:标号 SPACE 表达式n (8)MAP 语法格式: MAP 表达式 ,基址寄存器 n (9)FILED 语法格式:标号 FIELD 表达式4 汇编控制伪指令 n 汇编控制伪指令用于控制汇编程序的执行流程,常用的汇编控制伪指令包括以下几条: (1) IF、ELSE、ENDIF 语法格式: IF 逻辑表达式n 指

14、令序列 1n ELSE 指令序列 2 ENDIF 4 汇编控制伪指令(Cont.) n (2) WHILE、WEND 语法格式: WHILE 逻辑表达式 指令序列 WENDn (3) MEXIT 语法格式: MEXIT MEXIT 用于从宏定义中跳转出去。4 汇编控制伪指令(Cont.) (4) MACRO、MEND 语法格式: MACRO $ 标号 宏名 $ 参数 1 , $ 参数 2 , 指令序列 MEND MACRO、MEND伪指令可以将一段代码定义为一个整体,然后就可以在程序中通过宏指令多次调用该段代码。 5 其他常用的伪指令n 还有一些其他的伪指令,在汇编程序中经常会被使用,主要包括AREA、ALIGN、CODE16、

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号