ARM汇编语言中的表达式

表达式是由符号、数值、单目或多目操作符以及括号组成的。在一个表达式各种元素的优先级如下:

括号内的表达式优先级最高。

各种操作符有一定的优先级。

相邻的单目操作符的执行顺序由左到右,单目操作符优先级高于其他操作符。

优先级相同的双目操作符执行顺序为由左到右。

(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”


通知公告
编辑观点
理事会
参考资料
版权声明

凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。

《网络安全与数据治理》(原《信息技术与网络安全》)编辑部