ARM汇编程序设计之:汇编语言文件格式
(3)双目运算
ARM汇编中将双目运算符放在两个操作数中间。一般情况下,双目运算的优先级低于单目运算。下面将以操作符的优先级为序分别介绍各操作符。
注意 | 操作符的优先级与C语言中操作符优先级顺序略有不同,详见单目运算一节。 |
表10.6列出了乘法相关操作符。
表10.6 乘法相关操作符
操作符 | 别名 | 使用 | 说明 |
* | A*B | 乘法操作 | |
/ | A/B | 除法操作 | |
:MOD: | % | A:MOD:B | 以B为除数对A取模 |
乘法相关操作符包括乘、除、取模运算,在双目运算中具有最高优先级。这些运算的操作数只能是数字表达式。
表10.7列出了字符串相关操作符。
表10.7 字符串操作符
操作符 | 使用 | 说明 |
:CC: | A:CC:B | 连接两个字符串 |
:LEFT: | A:LEFT:B | 返回字符串A最左端B长度的字符,操作数A必须为字符串,B必须为整数表达式 |
:RIGHT: | A:RIGHT:B | 返回字符串A最右端B长度的字符,操作数A必须为字符串,B必须为整数表达式 |
表10.8列出了移位操作符。移位操作中两个操作数均为数字表达式。
表10.8 移位操作符
操作符 | 别名 | 使用 | 说明 |
:ROL: | A:ROL:B | A循环左移B位 | |
:ROR: | A:ROR:B | A循环右移B位 | |
:SHL: | A:SHL:B | A左移B位 | |
:SHR: | >> | A:SHR:B | A右移B位 |
注意 | SHR是逻辑右移,不影响符号位。 |
表10.9列出了所有加、减、逻辑操作符。
表10.9 加减运算操作符
操作符 | 别名 | 使用 | 说明 |
+ | A+B | A加上B | |
− | A−B | 从B中减去A | |
:AND: | A:AND:B | A和B按位与 | |
:EOR: | ^ | A:EOR:B | A和B按位异或 |
:OR: | || | A:OR:B | A和B按位或 |
加、减运算的操作数均为数字表达式。逻辑运算的表达式为数字表达式,此运算按位操作产生结果。
表10.10列出了ARM汇编中的关系符。关系操作符用于表示两个同类表达式之间的关系。关系符的两个操作数必须为同种类型的操作数。操作数可以是数字变量、程序相关表达式、寄存器相关表达式或字符串。
表10.10 关系操作符
操作符 | 别名 | 使用 | 说明 |
= | == | A=B | 判断A是否等于B |
> | A>B | 判断A是否大于B | |
>= | A>=B | 判断A是否大于等于B | |
AB | 判断A是否小于B | ||
= | A=B | 判断A是否小于等于B | |
/= | > != | A/=B | 判断A是否不等于B |
评论