19.1. ASL 2.0 符号运算符和表达式
对于数学和逻辑运算,ASL 支持与 C 语言类似的标准符号运算符和表达式。还支持复合赋值运算符。由这些符号运算符和表达式生成的 AML 代码,与为等效旧式 ASL 运算符生成的 AML 代码完全相同。
下表总结了 ASL 2.0 对符号运算符的支持,并与等效的旧式 ASL 进行了比较。
数学运算符
| ASL 2.0 语法 | 旧式 ASL 等效形式 |
|---|---|
| Z = X + Y | 加法 (X, Y, Z) |
| Z = X / Y | 除法 (X, Y, , Z) |
| Z = X % Y | 取模 (X, Y, Z) |
| Z = X * Y | 乘法 (X, Y, Z) |
| Z = X - Y | 减法 (X, Y, Z) |
| Z = X << Y | 左移 (X, Y, Z) |
| Z = X >> Y | 右移 (X, Y, Z) |
| Z = X & Y | 与 (X, Y, Z) |
| Z = X | Y | 或 (X, Y, Z) |
| Z = X ^ Y | 异或 (X, Y, Z) |
| Z = ~X | 非 (X, Z) |
| X++ | 递增 (X) |
| X– | 递减 (X) |
逻辑运算符
| ASL 2.0 语法 | 旧式 ASL 等效形式 |
|---|---|
| (X == Y) | LEqual (X, Y) |
| (X != Y) | LNotEqual (X, Y) |
| (X < Y) | LLess (X, Y) |
| (X > Y) | LGreater (X, Y) |
| (X <= Y) | LLessEqual (X, Y) |
| (X >= Y) | LGreaterEqual (X, Y) |
| (X && Y) | LAnd (X, Y) |
| (X || Y) | LOr (X, Y) |
| !X | LNot (X) |
赋值和复合赋值运算
| ASL 2.0 语法 | 旧式 ASL 等效形式 |
|---|---|
| X = Y | Store (Y, X) |
| X += Y | Add (X, Y, X) |
| X /= Y | Divide (X, Y, , X) |
| X %= Y | Mod (X, Y, X) |
| X *= Y | Multiply (X, Y, X) |
| X -= Y | Subtract (X, Y, X) |
| X <<= Y | ShiftLeft (X, Y, X) |
| X >>= Y | ShiftRight (X, Y, X) |
| X &= Y | And (X, Y, X) |
| X |= Y | Or (X, Y, X) |
| X ^= Y | Xor (X, Y, X) |
其他
| ASL 2.0 语法 | 旧式 ASL 等效形式 |
|---|---|
| Z = X[Y] | Index (X, Y, Z) |