- 1、本文档共115页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2008年3月28日 南京大学计算机系 第5章 ARM指令集和汇编语言程序 本章主要介绍以下内容: ARM汇编语言程序格式 典型ARM汇编语言程序举例 ARM汇编与C,C++混合编程 嵌入式系统开发中汇编语言设计的意义 汇编语言程序设计更能充分发挥处理器的硬件特性 两个优势 操作系统移植需要编写几百行底层硬件的汇编语言程序,这是C语言不可取代的。 优化算法的时空效率,C语言的目标代码优化是编译器完成的,而汇编语言的目标代码优化是人工完成的。人是算法的创造者,也是编译器的设计者,人工优化比编译器质量高。 弱点 编程效率低,开发周期长,经济代价大。 5.1 ARM汇编语言程序格式 两种ARM汇编语言格式 ARM汇编语言程序格式主要有两种: 基于ADS1.2集成开发环境的汇编器格式 包括SDT在内,统称为ADS 基于Linux的GNU汇编器格式 在本章主要介绍基于ARM公司ADS集成开发环境汇编器格式的汇编语言程序设计。 在后面将介绍基于GNU汇编器的ARM汇编语言程序编写方法。 预定义寄存器名及内部变量名 ARM汇编器中将几十个寄存器名称作为保留字预先给与了定义,这些预定义寄存器名都是大小写敏感的,它们都与具体的寄存器一一对应。参看下面的表格。 ARM公司ADS预定义的寄存器名一览表 ARM公司ADS预定义的寄存器名一览表(续) ARM汇编语言程序的部分内部变量名清单 ARM汇编语言程序的语句格式 ARM汇编语言程序的语句格式格式如下: { symbol } { instruction | directive | pseudo-instruction } { ;comment } 对应的中文语句格式描述是: { 符号 (标号)} { 指令 | 指示符 | 伪指令 } { ;注释 } 语句格式中,花括号括起来的部分表示可以省略;竖线分隔的字段表示可以替换。 ARM汇编语言程序中的符号 ARM汇编语句中的符号可以是指令地址或标号、变量、常量和局部标号,符号属性可以是程序相关的、寄存器相关的或者是绝对地址。 (一)符号命名和书写规则 符号的命名和书写有以下规则: ①符号命名可以使用大小写字母,数字和下划线。 ②符号是大小写字母敏感的。 ③除本地行号外,名称不能以数字开头。 ④一个程序段中不能重名。 ⑤符号在其作用范围内必须唯一。 ⑥符号不能够与系统内部变量或者系统预定义的符号同名。例如:a1 or R0、sp、cpsr、{PC} or .、{VAR} or @、{CONFIG}、{CPU}等等。 符号命名和书写规则(续) ⑦当程序中的符号与指令助记符或者指示符同名时,用双竖线将符号括起来。如||buffe_a||,这时双竖线并不是符号的组成部分。 ⑧在ARM汇编语言程序中,所有符号必须在一行的最左边位置开始书写,即所谓的顶格书写,不允许包含空格或者制表符。 ⑨符号的字符序列中不能大小写字母相混杂。 (二)常量 ARM汇编语言中使用到的常量可以是数字常量、字符常量、字符串常量和布尔常量。 数字常量有以下3种表示方式: 1)十进制数,如:535,246。 2)十六进制数,如:0x645,0xff00。 3)n进制数,格式为n_XXX,其中n表示n进制,从2~9,XXX是具体的数字。 例如:8_3777,8_5237702 字符常量 字符常量由一对单引号括起来,包括一个单字符或者标准C中的转义字符。 例如:’A’,’\n’。 字符串常量由一对双引号以及由它括住的一组字符串组成,包括标准C中的转义字符。如果需要使用双引号或字符$,则必须用””和$$代替。 例如执行语句:strtwo SETS “This is character of ””” 其编译结果是:字符串“This is character of ””被赋值给strtwo变量。 $$在汇编语句中的使用举例 GBLS add4ff add4ff SETS “ADD r4,r4,#0xFF“ ; set up add4ff $add4ff.00 ; invoke add4ff ; this produces ; ADD r4,r4,#0xFF00 ; elaborate substitution GBLS s1 GBLS s2 GBLS fixup GBLA count count SETA 14 s1 SETS a$$b$count ; s1 now has value a$b0000000E s2 SETS abc Fixup SETS |xy$s2.z| ; fixup now has value |xyabcz| |C$$code|
您可能关注的文档
- 变压器习题课(李发海软件.ppt
- 7.第八章数据挖掘模型评估.ppt
- 7100中考说明文阅读指导(栗子作品).ppt
- 7LinuxShell脚本编写.ppt
- 变态心理学与健康心理学知识课件之一.ppt
- 7、1《年、月、日》的认识.ppt
- 12、美丽的三潭印月.pptx
- 7厂房、设施与净化空调.ppt
- 7好在烈日和暴雨下.ppt
- 变速箱原理简明教程.ppt
- 3万吨年十二烷基硫酸钠清洁生产项目4-物料衡算模拟数据表.pdf
- 《计算机应用基础》课件4.3图形图像处理及邮件合并.pptx
- 《大学计算机——计算思维》第7章 程序设计基础.pptx
- 1.44亿立方米炼厂气深度脱硫联产7000吨甲硫醇项目2-可行性研究报告.doc
- 《经济法》教材全书答案-2021年5月(黄亚宇)3-答案-项目三公司法律制度.pdf
- 《经济法》教材全书答案-2021年5月(黄亚宇)6-答案-项目六经济仲裁与诉讼.pdf
- 1.44亿立方米炼厂气深度脱硫联产7000吨甲硫醇项目3-初步设计说明书.doc
- 3万吨年十二烷基硫酸钠清洁生产项目2-初步设计说明书.pdf
- 03全国注册会计师考试《税法》模拟试卷(二).docx
- 《计算机应用基础》课件7python编程基础5.pptx
最近下载
- 数码相机-SONY索尼-HDR-SR1E说明书.pdf
- 数学的发展历程.pptx
- 医药销售年终总结PPT.pptx
- 多维阅读第5级SmokeJumpersHelp消防队在行动方芳-完整版PPT课件.pptx
- 日本大学2015留学.ppt
- 高标准农田假设检验批表格.doc VIP
- 2024年湖北省烟草专卖局(公司)招聘笔试真题.docx VIP
- 课题申报书:家校共育背景下儿童社会情感能力的异质性发展机制及促进研究.docx VIP
- 2025年八省联考陕西高考生物试卷真题答案详解(精校打印).pdf VIP
- Unit 1 Meeting New Friends (教学设计)-2024-2025学年闽教版英语五年级上册.docx
文档评论(0)