第7章 汇编语言程序设计.ppt
《第7章 汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《第7章 汇编语言程序设计.ppt(35页珍藏版)》请在三一文库上搜索。
1、第7章 汇编语言程序设计,本章主要介绍ARM汇编语言程序设计规范,以及在汇编语言程序设计中所要注意的问题,最后以大量的实例说明汇编语言程序设计方法。,内容提要,7.1 ARM汇编语言源程序格式及规范 7.2 ARM汇编语言程序设计实例解析,常用ARM源程序文件类型,汇编语言程序的结构,CODE32 ;32位的ARM指令段 AREA codesec,CODE,READONLY ;代码段,名称为codesec,属性为只读 main PROC ;函数main STMFD SP!,LR ;保存必要的寄存器和返回地址 ADR R0,strhello ;取标签strhello代表的地址值 BL _prin
2、tf ;调用C运行时库的_printf函数 ;“Hello world!”字符串 BL welcomefun ;恢复子函数welcomefun LDMFD SP!,PC ; 恢复寄存器值 strhello ;strhello代表本地制服穿的地址 DCB “Hello world!n0” ;定义一段字节空间 ENDP ;函数main结束,welcomefun ;子函数welcomefun STMFD SP!,LR ;保存必要的寄存器和返回地址 ADR R0,adrstrarm ;取标签adrstrarm代表的地址值到R0中 LDR R0,R0,#0 ;将Strarm的值放到R0中 BL _pri
3、ntf ;调用C运行时库的_printf函数打印 ;“Welcome to ARM world!”字符串 LDMFD SP!,PC ; 恢复寄存器值 adrstrarm ;adrstrarm标签 DCD strarm ;保存strarm的地址 AREA constdatasec,DATA,READONLY,ALIGN=2 ;数据段,名称constdatasec ;只读,字对齐 Strarm DCB “Welcome to ARM world!n0” ;存放“Welcome to ARM world!” ;字符串,EXPORT main ;导出main函数供外部调用 ;引入三个C运行时的库函数和
4、ARM库 IMPORT _main IMPORT _printf IMPORT |lib$request$armlib|,WEAK END ;程序结束,ARM的汇编语言程序一般由几个段组成,每个段都由AREA伪操作定义。 段可以分为多种,如代码段、数据段、通用段,每个段又有不同的属性,如代码段的默认属性为READONLY,数据段的默认属性为READWRITE。 本程序定义了两个段,第一个段为代码段codesec,在存储器中存放用于程序执行的代码以及main函数的本地字符串;第二个段为数据段constdatasec,存放了全局的字符串,由于本程序没有对数据进行写操作,该段定义的属性为READON
5、LY。,ARM汇编语言程序设计格式及规范,ARM编译环境下进行汇编语言程序设计的格式 汇编语句中的符号规则,ARM编译环境下汇编语句格式,ADS环境下ARM汇编语句格式如下: 标签 指令/伪操作/伪指令 操作数 ;语句的注释 所有的标签必须在一行的开头顶格写,前面不留空格。后面也不能跟C语言中的标签一样加“:”; ARM汇编器对标识符的大小写敏感,书写标号以及指令时字母的大小写要一致; 注释使用“;”符号,注释的内容从“;”开始到该行的结尾结束。,ARM编译环境下汇编语句中符号规则 1.符号命名规则 (1)符号由大小写字母、数字、下划线组成,且符号是区分大小写的。 (2)局部标号可以用数字开头
6、,其他的标号不能。 (3)符号在其作用范围内必须是唯一的。 (4)程序中的符号不要与指令助记符或者伪操作同名。,标签 标签是一个符号,可以代表指令的地址、数据的地址、变量。 一般以字母开头,由字母、数字、下划线组成。 当符号代表地址时又称标号,可以以数字开头,其作用范围为当前段或者在下一个ROUT伪操作之前。 指令/伪操作 指令/伪操作是指令的助记符,他告诉ARM的处理器应该执行什么样的操作或者告诉汇编程序伪指令语句的伪操作功能。,标号代表地址 标号分为段内标号和段外标号。段内标号的地址值在汇编时确定,段外标号的地址值在连接是确定。 在程序段中,标号代表其所在位置与段首地址的偏移量。根据程序计
7、数器(PC)和偏移量计算地址及程序相对寻址。 在影像中定义的标号代表标号到映像首地址的偏移量。映像的首地址通常被赋予一个寄存器,根据寄存器值域偏移量计算地址即寄存器相对寻址。 例如 loop SUBS R0,R0,#1 ;每次循环使R0=R0-1 BNE loop ;跳转到loop标号去执行,在宏中也可以使用局部标号。局部标号是0-99的十进制开始,可以重复定义 被引用的局部标号语法规则是: % FB AT n routname 其中: n是局部标号的数字号。 routname是当前局部范围的名称。 %表示引用操作。 F指示汇编器只向前搜索。 B指示汇编器只向后搜索。 A指示汇编器搜索宏的所有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第7章 汇编语言程序设计 汇编 语言程序设计
链接地址:https://www.31doc.com/p-2257628.html