【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » IT资讯 » 正文

ARM指令中特殊符号意义

放大字体  缩小字体 发布日期:2020-11-07 14:33:51    浏览次数:21
导读

  LDM中{}为可选后缀,当指令为LDM且寄存器列表中包含R15,选用该后缀时表示:除了正常的数据传送之外,还将SPSR复制到CPSR。同时,该后缀还表示传入或传出的是用户模式下的寄存器,而不是当前模式下的寄存器。  如果$后是数字变量(与串变量区分),在汇编时编译器将该数字变量的数值转换成十六进制的串,然后用该十六

  LDM中{}为可选后缀,当指令为LDM且寄存器列表中包含R15,选用该后缀时表示:除了正常的数据传送之外,还将SPSR复制到CPSR。同时,该后缀还表示传入或传出的是用户模式下的寄存器,而不是当前模式下的寄存器。

  如果$后是数字变量(与串变量区分),在汇编时编译器将该数字变量的数值转换成十六进制的串,然后用该十六进制的串取代$后的数字变量。

  注意:在两个竖线“”之间的$并不表示进行变量替换,但如果“”是在双引号内,则将进行变量替换。

  B .//表示程序进入死循环。.为location counter,可在源文件中指示当前地址。该符号可以被引用或赋值。

  在ARM汇编语言中,符号(symbols)可以代表地址(addresse)、变量(variables)和数字常量(numeric constants)。当符号代表地址时,又称为标号(lable)。当标号以数字开头时,其作用范围为当前段(当前段没有使用ROUT伪操作时),这种标号又称为局部标号(lacal lable)。符号变量包括变量、数字常量、标号和局部标号。

  在程序中,变量的值在汇编处理过程中可能会发生改变。在ARM汇编中变量有数字变量、逻辑变量和串变量3种类型。变量的类型在程序中是不可以改变的。

  数字变量的取值范围为数字常量和数字表达式所能表示的数值;逻辑变量的取值范围为{true}和{flash};串变量的取值范围为串表达式可以表达的范围。

  在ARM汇编语言中,使用GBLA、GBLL及GBLS声明全局变量;使用LCLA、LCLL及LCLS声明局部变量;使用SETA、SETL及SETS为这些变量赋值。

  数字常量是32位的整数。在ARM汇编语言中,使用EQU来定义数字常量。数字常量一经定义就不可修改。 进行大小比较时,认为数字常量都是无符号数。

  对于数字变量来说,如果该变量前面有一个$字符,在汇编时编译器将该数字变量的数值转换成十六进制的串,然后用该十六进制的串取代$字符后的数字变量。

  对于逻辑变量来说,如果该逻辑变量前面有一个$字符,在汇编时编译器将该逻辑变量替换成它的取值(T或者F)

  通常情况下,包含在两个竖线()之间的$并不表示进行变量替换。但是如果竖线()是在双引号内,则将进行变量替换。

  基于PC的标号。基于PC的标号是位于目标指令前或者程序中数据定义伪操作前的标号。这种标号在汇编时将被处理成PC值加上(或减去)一个数字常量。常用于表示跳转指令的目标地址,或者代码段中所嵌入的少量数据。

  基于寄存器的标号。基于寄存器的标号常用MAP和FIELD未定义操作,也可以该用EQU伪定义。这种标号在汇编时将被处理成寄存器的值加上(或减去)一个数据常量。常用于访问数据段中的数据。

  局部标号主要在局部范围内使用。它由两部组成:开头是一个0-99直接的数字,后面紧接一个通常表示该局部变量作用范围的符号。

  N{routname},其中,N为0~99之间的数字。routname为符号,通常为该变量作用范围的名称(用ROUT伪操作定义的)。

  如果指定了routname,编译器向前搜索最近的ROUT伪操作,若routname与该ROUT伪操作定义的名称不匹配,编译器报告错误,汇编失败。

  字符串表达式由字符串、字符串变量、操作符以及括号组成。字符串的最大长度为512字节,最小长度为0.下面介绍字符串表达式的组成元素。

  字符串:由包含在双引号内的一系列的字符组成。字符串的长度受到ARM汇编语言语句长度的限制。当在字符串中包含美元符号$或者引号"时,用$$表示一个$,用""表示一个"。

  (2)CHR:可以将0~255之间的整数作为含一个ASCII字符的字符串。当有些ASCII字符不方便放在字符串中时,可以使用CHR将其放在字符串表达式中。

  (3)STR:将一个数字量或者逻辑表达式转换成串。对于32位的数字量而言,STR将其转换成8个十六进制数组成的串;对于逻辑表达式而言,STR将其转换成字符串T或者F

  基于PC的表达式表示了PC寄存器的值加上(或减去)一个数字表达式。基于PC的表达式通常由程序中的标号与一个数字表达式组成。相关的操作符:

  关系操作符:用于表示两个同类表达式之间的关系。关系操作符和它的两个操作数组成一个逻辑表达式,其取值为{FALSE}或{TRUE}

 
关键词: arm是什么意思
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:http://www.31duo.com/news/show-732379.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4