徐春雷ARM体系结构域编程第4章

上传人:li****i 文档编号:242977528 上传时间:2024-09-13 格式:PPT 页数:24 大小:873KB
返回 下载 相关 举报
徐春雷ARM体系结构域编程第4章_第1页
第1页 / 共24页
徐春雷ARM体系结构域编程第4章_第2页
第2页 / 共24页
徐春雷ARM体系结构域编程第4章_第3页
第3页 / 共24页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级二级二级二级二级二级二级二级二级二级二级,第三级,第四级,第五级,*,第,4,章,ARM,汇编语言程序设计,本章介绍如何编写,ARM,和,Thumb,汇编语言程序。同时介绍,ARM,汇编编译器,armasm,的使用方法。,2,4.1,伪 操 作,ARM,汇编语言源程序中语句由指令、伪操作和宏指令组成。在,ARM,中伪操作称为,derective,,这里为保持和国内在,IBM PC,汇编语言中对名词翻译的一致性,derective,称为伪操作;同样在,ARM,中宏指令被称为,pseudo-instruction,,这里将其称为宏指令,宏指令也是通过伪操作定义的。,本节介绍以下类型的,ARM,伪操作和宏指令。,符号定义,(Symbol definition),伪操作。,数据定义,(Data definition),伪操作。,汇编控制,(Assembly control),伪操作。,框架描述,(Frame description),伪操作。,信息报告,(Reporting),伪操作。,其他,(Miscellaneous),伪操作。,3,4.1.1,符号定义伪操作,符号定义,(Symbol definition),伪操作用于定义,ARM,汇编程序中的变量,对变量进行赋值以及定义寄存器名称。包括以下伪操作。,GBLA, GBLL,及,GBLS,声明全局变量。,LCLA, LCLL,及,LCLS,声明局部变量。,SETA, SETL,及,SETS,给变量赋值。,RLIST,为通用寄存器列表定义名称。,CN,为协处理器的寄存器定义名称。,CP,为协处理器定义名称。,DN,及,SN,为,VFP,的寄存器定义名称。,FN,为,FPA,的浮点寄存器定义名称。,4,4.1.2,数据定义伪操作,数据定义,(Data definition),伪操作包括以下的伪操作。,LTORG,声明一个数据缓冲池,(literal pool),的开始。,MAP,定义一个结构化的内存表,(storage map),的首地址。,FIELD,定义结构化的内存表中的一个数据域,(field),。,SPACE,分配一块内存单元,并用,0,初始化。,DCB,分配一段字节的内存单元,并用指定的数据初始化。,DCD,及,DCDU,分配一段字的内存单元,并用指定的数据初始化。,DCDO,分配一段字的内存单元,并将个单元的内容初始化成该单元相对于静态基值寄存器的偏移量。,5,4.1.2,数据定义伪操作,DCFD,及,DCFDU,分配一段双字的内存单元,并用双精度的浮点数据初始化。,DCFS,及,DCFSU,分配一段字的内存单元,并用单精度的浮点数据初始化。,DCI,分配一段字节的内存单元,用指定的数据初始化,指定内存单元中存放的是代码,而不是数据。,DCQ,及,DCQU,分配一段双字的内存单元,并用,64,位的整数数据初始化。,DCW,及,DCWU,分配一段半字的内存单元,并用指定的数据初始化。,DATA,在代码段中使用数据。现已不再使用,仅用于保持向前兼容。,6,4.1.3,汇编控制伪操作,汇编控制,(Assembly control),伪操作包括下面的伪操作。,IF,,,ELSE,及,ENDIF,WHILE,及,WEND,MACRO,及,MEND,MEXIT,7,4.1.4,栈中数据帧描述伪操作,栈中数据帧描述伪操作主要用于调试,这里不介绍这部分内容。感兴趣的读者可以参考,ARM,的相关资料。,8,4.1.5,信息报告伪操作,信息报告,(Reporting),伪操作包括伪操作。,ASSERT,INFO,OPT,TTL,及,SUBT,9,4.1.6,其他的伪操作,这些杂类的伪操作包括:,ALIGN,AREA,CODE16,及,CODE32,END,ENTRY,EQU,EXPORT,或,GLOBAL,EXTERN,10,4.1.6,其他的伪操作,GET,或,INCLUDE,IMPORT,INCBIN,KEEP,NOFP,REQUIRE,REQUIRE8,及,PRESERVE8,RN,ROUT,11,4.2 ARM,汇编语言伪指令,ARM,中伪指令不是真正的,ARM,指令或者,Thumb,指令,这些伪指令在汇编编译器对源程序进行汇编处理时被替换成对应的,ARM,或者,Thumb,指令,(,序列,),。,1. ADR (,小范围的地址读取伪指令,),2. ADRL(,中等范围的地址读取伪指令,),3. LDR,大范围的地址读取伪指令,4. NOP,空操作伪指令,12,4.3 ARM,汇编语言语句格式,ARM,汇编语言语句格式如下所示:,symbol ,instruction|directive|pseudo,-instruction ; comment,在,ARM,汇编语言中,各个指令、伪指令及伪操作的助记符必须全部用大写字母,或者全部用小写字母,不能在一个伪操作助记符中既有大写字母又有小写字母。,源程序中,语句之间可以插入空行,以源代码的可读性更好。,如果一条语句很长,为了提高可读性,可以将该长语句分成若干行来写。这时在一行的末尾用“,”,表示下一行将续在本行之后。,13,4.3.1 ARM,汇编语言中的符号,在,ARM,汇编语言中,符号,(symbols),可以代表地址,(addresses),、变量,(variables),和数字常量,(numeric constants),。,符号的命名规则如下:,符号由大小写字母、数字以及下划线组成。,局部标号以数字开头,其他的符号都不能以数字开头。,符号是区分大小写的。,符号中的所有字符都是有意义的。,符号在其作用范围内必须惟一,即在其作用范围内不可有同名的符号。,程序中的符号不能与系统内部变量或者系统预定义的符号同名。,程序中的符号通常不要与指令助记符或者伪操作同名。,14,4.3.1 ARM,汇编语言中的符号,1.,变量,2.,数字常量,3.,汇编时的变量替换,4.,标号,5.,局部标号,15,4.3.2 ARM,汇编语言中的表达式,表达式是有符号、数值、单目或多目操作符以及括号组成的。在一个表达式各种元素的优先级如下所示:,括号内的表达式优先级最高。,各种操作符有一定的优先级。,相邻的单目操作符的执行顺序为由右到左,单目操作符优先级高于其他操作符。,优先级相同的双目操作符执行顺序为由左到右。,16,4.3.2 ARM,汇编语言中的表达式,1.,字符串表达式,2.,数字表达式,3.,基于寄存器和基于,PC,的表达式,4.,逻辑表达式,5.,其他的一些操作符,17,4.4 ARM,汇编语言程序格式,本小节介绍,ARM,汇编语言程序的基本格式以及子程序间调用的格式。,18,4.4.1,汇编语言程序格式,ARM,汇编语言以段,(section),为单位组织源文件。段是相对独立的、具有特定名称的、不可分割的指令或者数据序列。,ARM,汇编语言源程序经过汇编处理后生成一个可执行的映像文件,(,类似于,windows,系统下的,EXE,文件,),。该可执行的映像文件通常包括下面,3,部分:,一个或多个代码段。代码段通常是只读的。,零个或多个包含初始值的数据段。这些数据段通常是可读写的。,零个或多个不包含初始值的数据段。这些数据段被初始化为,0,,通常是可读写的。,19,4.4.2,汇编语言子程序调用,在,ARM,汇编语言中,子程序调用是通过,BL,指令完成的。,BL,指令的语法格式如下:,BL,subname,其中,,subname,是调用的子程序的名称。,BL,指令完成两个操作:将子程序的返回地址放在,LR,寄存器中,同时将,PC,寄存器值设置成目标子程序的第一条指令地址。,在子程序返回时可以通过将,LR,寄存器的值传送的,PC,寄存器中来实现。,20,4.5 ARM,汇编编译器的使用,ARMASM,的语法格式如下所示:,armasm,-16|-32 -,apcs,none|/qualifier/qualifier.,-,bigend|-littleend, -,checkreglist, -,cpu,cpu, -depend,dependfile|-m|-md,-errors,errorfile, -,fpu,name -g -help -i dir ,dir -keep -list,listingfile, options -,maxcache,n -,memaccess,attributes -,nocache,-,noesc, -,noregs, -,nowarn, -o filename -predefine directive -,split_ldm,-unsafe -via file,inputfile,21,4.6,汇编程序设计举例,在本节中通过一些例子来说明,ARM,中伪操作以及指令的用法。,4.6.1,中举了一些伪操作的实例,,4.6.2,中是一些,ARM,汇编程序的实例。,22,4.6.1 ARM,中伪操作使用实例,程序,4.1 ARM,中伪操作的使用实例。,参见教材,P157,23,4.6.2 ARM,中汇编程序实例,本节列举一些,ARM,汇编程序的实例。,1.,数据块复制,2. ADR,伪操作的使用实例,3.,利用跳转表实现程序跳转,4.,伪指令,LDR,的使用实例,24,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!