ARM汇编语言要点(三)

ARM 143浏览

24. 表达式、文本和运算符
 字符串表达式
 字符串文本
 数字表达式
 数字文本
 浮点文本
 相对寄存器和程序相对的表达式
 逻辑表达式
 逻辑文本
 运算符优先级
这些运算符的求值有严格的优先顺序:
1. 圆括号中的表达式应最先求值。
2. 运算符根据优先顺序应用。
3. 邻近的一元运算符从右向左求值。
4. 优先级相同的二元运算符从左向右求值。

 一元运算符

 二元运算符

乘法运算符
乘法运算符在所有二元运算符中优先级最高。 它们只作用于数字表达式。

字符串处理运算符

移位运算符
移位运算符作用于数字表达式,将第一个操作数按第二个操作数指定的量进行
移位或循环移位。

注:SHR是逻辑移位,不影响符号位。

加法、减法和逻辑运算符
加法和减法运算符作用于数字表达式。
逻辑运算符作用于数字表达式。 运算按位执行,即独立作用于操作数的每一位
来产生结果。

关系运算符
这些运算符作用于两个同类型操作数,产生逻辑
值。
操作数可以是:
• 数字
• 程序相对的
• 寄存器相对的
• 字符串
字符串按照 ASCII 顺序排序。 如果字符串 A 是字符串 B 的一个前导子串,或者对于两个字符串中最左边的不同字符,字符串 A 中的字符要小于字符串 B 中的字符,则字符串 A 小于字符串 B。

算术值是无符号的,所以 0>-1 的值是 {FALSE}。

布尔运算符
这些运算符的优先级最低。 它们对操作数执行标准的逻辑运算。
在所有三种情况下,A 和 B 必须为取值为 {TRUE} 或 {FALSE} 的表达式。

25. 诊断消息
26. 使用C预处理程序