- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chapter 5 汇编语言语句格式 嵌入式课件
5.2 ARM汇编语言语句格式
学习完ARM的指令系统后,让我们系统地看一下ARM汇编语言的语句格式。
{符号}{指令或伪指令}{; 注释}
其中,需要注意的是:
在ARM汇编语言中,符号必须从一行的行头开始,并且符号中不能包含空格。符号可以为地址标号,也可以是某些指令中的变量或常量。
在ARM汇编语言中,指令不能从一行的行头开始,前面必须有空格或者符号。
注释以“:”开头,可以单独占据一行。汇编器在汇编时忽略所有的注释。
在ARM汇编语言中,指令助记符必须统一大写或者小写,不能在一个助记符中既有大写字母又有小写字母。伪指令必须大写。
语句之间可以插入空行,以增加程序的可读性。如果一条语句很长,可以分成若干行来写。在一行的末尾用“\”表示下一行将续在本行之后。注意在“\”之后不能再有其它任何字符。
ARM汇编语言的符号
前面提到ARM汇编语言的符号可以为地址标号,以可以为变量或者是常量。对于地址标号,当以数字开头时,其作用范围为当前段(当没有使用ROUT伪操作时),这种标号又称局部标号。
标号的命名满足如下规则:
符号由大小字母、数字以及下划线组成;
局部标号以数字开头,其他的符号均不能以数字开头;
符号区分大小写;
符号中所有字符都是有意义的;
符号在其作用范围内必须唯一,即在其作用范围内不可有同名的符号;
程序中的符号不能与系统内部变量或者系统预定义的符号同名;
程序中的符号通常不要与指令助记符或伪指令同名。当程序中的符号与指令助记符或伪指令同名时,用双竖线将符号括起来,如||require||,这时的双竖线并不是符号的组成部分。
常量
ARM中的常量有数字常量、逻辑常量、串常量和字符常量。在ARM汇编语言中,使用EQU来定义常量,常量一经定义,其数字就不能再修改。
数字常量是一个32位的整数,当作为无符号整数时,取值范围为0~232-1;当作为有符号整数时,取值范围为-231~231-1汇编器并不区分一个数是无符号数还是有符号数,事实上-n与232-n在内存中是同一个数。进行大小比较时,认为数字常量都是无符号的数。
数字常量常采用3种表示方式:
十进制表示,如123。
十六进制表示,如0x7c。
N进制表示n_XXX,其中n为2~9之间的整数。例如8_123表示十进制数83。
逻辑常量包括TRUE和FALSE两个取值,使用时必须写出{TRUE}和{FALSE}两种形式。
串常量时用双引号括起来的字符串,中间可以包含空格。如果串常量本身含有双引号或$形式字符,则必须书写两次,例如:”abc$$cba”表示的是字符串”abc$cba”。
字符常量是用单引号括起来的单一的字符。
变量及变量替换
ARM中的变量有数字变量、逻辑变量和串变量3种,变量的类型在程序中不能改变。
数字变量的取值范围为数字常量和数字表达式所能表示的数值范围。
逻辑变量的取值为{TRUE}和{FALSE}。
串变量的取值范围为串表达式可以表示的范围,如“abcd”。
在ARM汇编语言中,用GBLA、GBLL、GBLS声明全局变量,用LCLA、LCLL、LCLS声明局部变量,用SETA、SETL、SETS为变量赋值。
如果在串变量前面有一个$字符,汇编时编译器会用该串变量的数值取代该串变量。例如下面的指令汇编后STR2的值为This is a pen。
GBLS STR1
GBLS STR2
STR1 SETS “pen”
STR2 SETS “This is a $STR1”
如果数字变量的前面有一个$字符,汇编时编译器会将该数字变量的数字转换成十六进制的串,用它来取代$后面的数字变量。
如果逻辑变量的前面有一个$字符,汇编时编译器会将该逻辑变量替换成它的取值(TRUE或FALSE).
如果程序中需要字符$,则用$$来表示。
标号及局部标号
符号表示地址时常被称为标号,汇编器根据标号在程序中的位置为标号赋予相应的地址值。根据地址值的生成方式可以把标号分为以下3种:
基于PC的标号:在汇编时处理成PC值加上或减去一个偏移量。
基于寄存器的标号:在结构化的内存表(MAP)中通常含有标号,程序中内存表的首地址常放在某一个寄存器中,则标号在汇编时被处理成寄存器的值加上一个偏移量,这种类型的标号称为基于寄存器的标号。
绝对地址:连接时生成的标号地址值。
局部标号为0~99之间的十进制数字。其语法格式如下:
N{routname}
其中,N为0~99之间的数字,routname为局部标识的作用范围,可选项。与其他标号不同,局部标号可以被定义多次。局部标号在宏定义中非常有用,其作用范围限制在当前段(AREA)中,也可以用ROUT伪指令来定义局部变量的作用范围。
局部标号的引用:
%{F|B}{A|T} N{routname}
其中,F表示编译
您可能关注的文档
- Ch4_2 第4章 交流绕组—电动势 电机学课件.ppt
- ch4_1查找 《软件技术基础》 教学课件.ppt
- ch4-无线通信技术概述 现代通信技术 教学课件.ppt
- ch4_2排序 《软件技术基础》 教学课件.ppt
- ch4_图形界面new_简化 linux课件.ppt
- Ch4_3 第4章 交流绕组—磁动势 电机学课件.ppt
- ch4_时钟及电源管理 嵌入式系统原理与应用技术 教学课件.ppt
- ch4使命与战略目标 公司战略管理 教学课件.ppt
- ch4总结 研究生现代控制工程试卷 课件.ppt
- ch4李亚普诺夫稳定性分析 研究生现代控制工程试卷 课件.ppt
- Chapter 5.2 Haloalkanes (07 9) 浙江大学有机化学教学课件 大学二年级上.ppt
- Chapter 5 transcription 分子生物学双语课程PPT.ppt
- Chapter 5. Bending Stress 材料力学教学课件 英文版.ppt
- Chapter 5-new Ideal Reactors for a Single Reaction 化学反应工程 教学课件.ppt
- Chapter 5第五章 化学反应动力学 工程化学基础 教学课件.ppt
- Chapter 6 Approximation methods 量子力学英文教案课件.ppt
- CHAPTER 6 Unemployment 宏观经济学 教学课件.ppt
- Chapter 6 Communicating Without Words 管理沟通双语课件.ppt
- Chapter 6 Enzymatic catalysis in Non-aqueous system酶的非水相催化 酶工程 教学课件.ppt
- Chapter 6 Financial Statement Analysis 财务管理(双语版) 教学课件.ppt
最近下载
- 年产12万吨苯乙烯精制工艺设计.docx
- 电工基础知识(全面)课件课件(完整版)160页.pptx VIP
- 装配式建筑在装配式港口码头中的应用与优化,2025年行业展望报告.docx
- 《新媒体文案创作与传播(第2版微课版)》全套教学课件.pptx
- 课题申报参考:中华优秀传统家文化融入大学生积极心理品质培育路径研究.docx VIP
- 2024年中国第三方支付行业研究报告.pdf
- 水产动物疾病学3免疫学.ppt
- 课题申报参考:中华优秀传统医德文化融入医药院校“思想道德与法治”课教学研究.docx VIP
- (高清版)DB32∕T 5040-2025 家用电梯智能化要求及验收规范.pdf VIP
- DB32_T 5040-2025 家用电梯智能化要求及验收规范.docx
原创力文档


文档评论(0)