ARM中常用的一些代表指令的符号.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM中常用的一些代表指令的符号

特殊符号对应指令含义 特殊符号??对应指令??? 含义 ? =?????????? 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值加上(或减去)一个数字常量。常用于表示跳转指令的目标地址,或者代码段中所嵌入的少

文档评论(0)

xjj2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档