表达式是由符号、数值、单目或多目操作符以及括号组成的。在一个表达式各种元素的优先级如下:
括号内的表达式优先级最高。
各种操作符有一定的优先级。
相邻的单目操作符的执行顺序由左到右,单目操作符优先级高于其他操作符。
优先级相同的双目操作符执行顺序为由左到右。
(1)字符串表达式
字符串表达式由字符串、字符串变量、操作符以及括号组成。
字符串由包含在双引号内的一系列字符组成。字符串的长度受到ARM汇编语言语句长度的限制。当在字符串中包含美元符号$或者引号”时,用$$表示一个$,用””表示一个”。
(2)字符串变量
字符串变量用伪操作GBLS或者LCLS声明,用SETS赋值。
(3)操作符
下面介绍与字符串表达式相关的操作符。
LEN
LEN操作符返回字符串的长度。其语法格式如下:
:LEN:A
其中:A为某一个字符的ASCII的值。
STR
STR将一个数字量或者逻辑表达式转换成串。对于32为的数字量而言,STR将其转换成8个十六进制组成的串;对于逻辑表达式而言,STR将其转换成字符串T(ture)或F(false)。其语法格式如下:
:STR:A
其中:A为数字量或逻辑表达式。
示例82 STR操作符举例
GLBA A1
SETA A1 15
:STR:A1 ;将A1转换为“0000000F”
LEFT
LEFT返回一个字符串最左端一定长度的字串。其语法格式如下:
A:LEFT:B
其中:A为源字符串;B为数字量,表示LEFT将返回的字符个数。
示例83 LEFT操作符举例
GBLS STR1
GBLS STR2
SETS STR1 “AAABBB”
SETS STR2 STR1:LEFT:3
程序运行完后,STR2为“AAA”
RIGHT
RIGHT返回一个字符串最右端一定长度的字串。其语法格式如下:
A:RIGHT:B
其中:A为源字符串;B为数字量,表示RIGHT将返回的字符个数。
示例83 LEFT操作符举例
GBLS STR1
GBLS STR2
SETS STR1 “AAABBB”
SETS STR2 STR1:RIGHT:3
程序运行完后,STR2为“BBB”
CC
CC用于连接2个字符串。其语法格式如下:
A:CC:B
其中:A为第1个源字符串;B为第二个源字符串。
CC操作符将字符串B连接在字符串A的后面。
示例85 CC操作符举例。
GBLS STR1 ;声明字符串变量STR1
GBLS STR2 ;声明字符串变量STR2
STR1 SETS “AAABBB” ;变量STRING1赋值为“AAACCC”
STR2 SETS “BBB”:CC ;(STR1:LEFT:3)
程序运行完后,STR2为“BBBAAA”