




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
特殊符号对应指令含义特殊符号对应指令 含义 = DCB 分配一片连续的字节存储单元并用指定的数据初始化 & DCD 分配一片连续的字存储单元并用指定的数据初始化 % SPACE 分配一片连续的存储单元 MAP 定义一个结构化内存表的首地址 # FILED 定义一个结构化内存表的数据域 * EQU 为程序中的常量、标号等定义一个等效的字符名称, ! 地址更新,结果写回到Rn中,Rn不允许是R15 | 相当于IF ELSE ENDIF 其他: LDM中为可选后缀,当指令为LDM且寄存器列表中包含R15,选用该后缀时表示:除了正常的数据传送之外,还将SPSR复制到CPSR。同时,该后缀还表示传入或传出的是用户模式下的寄存器,而不是当前模式下的寄存器。 TST R1,1 / 用于测试在寄存器R1中是否设置了最低位(表示二进制数) n $:如果在串变量前有一个$则在汇编时编译器将用该串变量的数值取代该串变量,如: GBLS STR1 GBLS STR2 STR1 SETS “pen.” STR2 SETS“This is a $STR1 编译后的结果是STR2的值为This is a pen. 如果$后是数字变量(与串变量区分),在汇编时编译器将该数字变量的数值转换成十六进制的串,然后用该十六进制的串取代$后的数字变量。 如果$后是逻辑变量,在汇编时编译器将该逻辑变量替换成它的取值(T或者F)。 如果程序中需要$,则用$来表示,编译器将不进行变量替换。 注意:在两个竖线“|”之间的$并不表示进行变量替换,但如果“|”是在双引号内,则将进行变量替换。 B . /表示程序进入死循环。.为location counter,可在源文件中指示当前地址。该符号可以被引用或赋值。 arm汇编程序中的符号 在arm汇编语言中,符号(symbols)可以代表地址(addresse)、变量(variables)和数字常量(numeric constants)。当符号代表地址时,又称为标号(lable)。当标号以数字开头时,其作用范围为当前段(当前段没有使用ROUT伪操作时),这种标号又称为局部标号(lacal lable)。符号变量包括变量、数字常量、标号和局部标号。 1、变量 在程序中,变量的值在汇编处理过程中可能会发生改变。在arm汇编中变量有数字变量、逻辑变量和串变量3种类型。变量的类型在程序中是不可以改变的。 数字变量的取值范围为数字常量和数字表达式所能表示的数值;逻辑变量的取值范围为true和flash;串变量的取值范围为串表达式可以表达的范围。 在arm汇编语言中,使用GBLA、GBLL及GBLS声明全局变量;使用LCLA、LCLL及LCLS声明局部变量;使用SETA、SETL及SETS为这些变量赋值。 2、数字常量 数字常量是32位的整数。在arm汇编语言中,使用EQU来定义数字常量。数字常量一经定义就不可修改。 进行大小比较时,认为数字常量都是无符号数。 3、汇编时变量的替换 如果在串变量前有一个$字符,在汇编时编译器将用改串的数值来取代该串变量。 对于数字变量来说,如果该变量前面有一个$字符,在汇编时编译器将该数字变量的数值转换成十六进制的串,然后用该十六进制的串取代$字符后的数字变量。 对于逻辑变量来说,如果该逻辑变量前面有一个$字符,在汇编时编译器将该逻辑变量替换成它的取值(T或者F) 如果程序中需要字符$,则用$来表示,编译器将不进行变量替换,而是将$当作$.通常情况下,包含在两个竖线(|)之间的$并不表示进行变量替换。但是如果竖线(|)是在双引号内,则将进行变量替换。 使用“.”来表示变量名称的结束。 4、标号 标号是表示程序中的指令或者数据地址的符号。根据标号的生成方式可分为3种:基于PC的标号。基于PC的标号是位于目标指令前或者程序中数据定义伪操作前的标号。这种标号在汇编时将被处理成PC值加上(或减去)一个数字常量。常用于表示跳转指令的目标地址,或者代码段中所嵌入的少量数据。 基于寄存器的标号。基于寄存器的标号常用MAP和FIELD未定义操作,也可以该用EQU伪定义。这种标号在汇编时将被处理成寄存器的值加上(或减去)一个数据常量。常用于访问数据段中的数据。 绝对地址。绝对地址是一个32位数据。它可以寻址232 -1,即直接可以寻址整个内存空间。 5、局部标号 局部标号主要在局部范围内使用。它由两部组成:开头是一个0-99直接的数字,后面紧接一个通常表示该局部变量作用范围的符号。 局部变量的作用范围通常为当前段,也可以用伪操作ROUT来定义局部变量的作用范围。 局部变量定义的语法格式如下: Nroutname,其中,N为099之间的数字。routname为符号,通常为该变量作用范围的名称(用ROUT伪操作定义的)。 局部变量引用的语法格式如下: %F|BA|TNroutname 其中,N为局部变量的数字号。 routname为当前作用范围的名称(用ROUT伪操作定义的) %表示引用操作 F指示编译器只向前搜索 B指示编译器只向后搜索 A指示编译器搜索宏的所有嵌套层次 T指示编译器搜索宏的当前层次 如果F和B都没有指定,编译器先向前搜索,再向后搜索如果A和T都没有指定,编译器搜索所有从当前层次到宏的最高层次,比当前层次低的层次不再搜索。 如果指定了routname,编译器向前搜索最近的ROUT伪操作,若routname与该ROUT伪操作定义的名称不匹配,编译器报告错误,汇编失败。 arm汇编语言中的表达式 表达式是由符号、数值、单目或多目操作符以及括号组成的。 1、字符串表达式 字符串表达式由字符串、字符串变量、操作符以及括号组成。字符串的最大长度为512字节,最小长度为0.下面介绍字符串表达式的组成元素。 字符串:由包含在双引号内的一系列的字符组成。字符串的长度受到arm汇编语言语句长度的限制。当在字符串中包含美元符号$或者引号时,用$表示一个$,用表示一个。 字符串变量:用伪操作GBLS或者LCLS声明,用SETS赋值。 操作符: (1)LEN:返回字符串的长度 :LEN:A 其中,A为字符串变量(2)CHR:可以将0255之间的整数作为含一个ASCII字符的字符串。当有些ASCII字符不方便放在字符串中时,可以使用CHR将其放在字符串表达式中。 :CHR:A 其中,A为某一字符的ASCII值(3)STR:将一个数字量或者逻辑表达式转换成串。对于32位的数字量而言,STR将其转换成8个十六进制数组成的串;对于逻辑表达式而言,STR将其转换成字符串T或者F :STR:A 其中,A为数字量或者逻辑表达式 (4)LEFT:返回一个字符串最左端一定长度的子串 A:LEFT:B 其中,A为源字符串,B为数字量,表示LEFT将返回的字符个数 (5)RIGHT:返回一个字符串最右端一定长度的子串 A:RIGHT:B 其中,A为源字符串,B为数字量,表示RIGHT将返回的字符个数(6)CC:用于连接两个字符串。 A:CC:B 其中,A为第1个源字符串。B为第2个源字符串。CC操作符将字符串B连接在字符串A的后面。 2、数字表达式 数字表达式由数字常量、数字变量、操作符和括号组成 数字变量用伪操作GBLA或者LCLA声明,用SETA赋值,它代表一个32位的数字量。 操作符: (1)NOT:按位取反 :NOT:A 其中,A为一个32位数字量 (2)+、/及MOD算术操作符 A+B,A-B,AB,A/B A:MOD:B表示A除以B的余数 (3)ROL,ROR,SHL,SHR移位 A:ROL:B将整数A循环左移B位 A:SHL:B将整数A左移B位 (4)AND、OR及EOR按位逻辑操作符 A:AND:B将数字表达式A和B按位作逻辑与操作 3、基于寄存器和基于PC的表达式 基于寄存器的表达式表示了某个寄存器的值加上(或者减去)一个数字表达式 基于PC的表达式表示了PC寄存器的值加上(或减去)一个数字表达式。基于PC的表达式通常由程序中的标号与一个数字表达式组成。相关的操作符:(1)BASE:返回基于寄存器的表达式中的寄存器编号。 :BASE:A A为基于寄存器的表达式 (2)INDEX:返回基于寄存器的表达式相对于其基址寄存器的偏移量。 :INDEX:A A为基于寄存器的表达式 (3)、:正负号,可以放在数字表达式或者基于PC的表达式前面。 +A(A)A为基于PC的表达式或者数字表达式 4、逻辑表达式 由逻辑量、逻辑操作符、关系操作符以及括号组成,取值范围为FLASE和TRUE关系操作符:用于表示两个同类表达式之间的关系。关系操作符和它的两个操作数组成一个逻辑表达式,其取值为FALSE或TRUE 如A=B表示A等于B A/=B,AB表示A不等于B逻辑操作符:进行两个逻辑表达式之间的基本逻辑操作。操作的结果为FLASE或TRUE :LNOT:A逻辑表达式A的值取反 A:LAND:B逻辑表达式A和B逻辑与 5、其他的一些操作符 (1)?:返回定义符号A的代码行所生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届上海市宝山中学化学高二第一学期期中学业质量监测试题含解析
- 2026届辽宁省清原中学化学高一上期末达标检测模拟试题含解析
- 模具制造数字化设计仿真技术在高速模具中的应用分析报告
- 生鲜新零售行业供应链优化与冷链物流企业创新驱动发展报告
- 车间火灾安全知识培训课件
- 2025年官方兽医牧运通考试题库附答案详解(培优a卷)
- 2025年有害生物防制员职业技能等级认定试题及答案
- 2025年第三季度医疗废物管理及中医医疗技术考核试题及答案
- Unit 3 Paying the price 主题词汇专项练习(含答案)高中英语沪教版选择性必修第一册
- 【核心素养】双减作业本跨学科主题学习2建设海洋牧场筑牢“蓝色粮仓”粤教版八年级上册(含答案)
- 2024-2025学年三年级英语下册期末试卷(PEP版)(含答案含听力原文无音频)
- 2025年特种设备电站锅炉司炉G2考前必练题库500题(含真题、重点题)
- 公司事故隐患内部报告奖励制度
- 人教部编版七年级语文上册教学计划(及进度表)
- 三员培训考试试题及答案
- 工期目标、工期保证体系及保证措施
- 《亚低温冬眠治疗》课件
- 2025年淫羊藿提取物项目可行性研究报告
- 2025年山西中阳钢铁有限公司招聘笔试参考题库含答案解析
- 2025年四川攀枝花钒钛高新国有资本投资运营有限公司招聘笔试参考题库附带答案详解
- (新版)电信网上大学智能云服务交付工程师认证考试题库-上(单选题)
评论
0/150
提交评论