ARM 汇编中的逻辑运算与条件执行
1. 逻辑运算基础
在计算机领域,逻辑运算可定义为涉及是/否决策的非算术运算。ARM 有三种不同的逻辑运算符:AND、OR 和 EOR。这些逻辑运算在两个独立数字的对应位之间进行,结果只有两种可能,在二进制中用 1 和 0 表示。这些指令在识别或强制设置数据集中的单个位状态时非常有用。
1.1 逻辑与(AND)
逻辑与运算的规则如下:
| 输入 A | 输入 B | 输出 |
| ---- | ---- | ---- |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 1 | 1 |
只有当被测试的两个对应位都为 1 时,AND 运算才会产生 1。如果在进行 AND 运算的任何一个对应位中存在 0,则结果位将始终为 0。例如:
1010
0011
0010 AND
结果中只有第 1 位被设置,其他位都为 0,因为在每个测试位对中,至少有一个位为 0。需要注意的是,在这些逻辑运算中没有进位位,测试是针对单个位进行的,并非进行数字的加减运算。
AND 运算的主要用途是“屏蔽”位或“保留”位。例如,要保留一个字节的低半字节(位 0 到 3)并完全清除高半字节(位 4 到 7),可以使用 AND 运算符,用值 00001111 对原始字节进行屏蔽。如果要保留的字节是 10101100 的低半字节,则进行如下逻辑与运算:
超级会员免费看
订阅专栏 解锁全文
2254

被折叠的 条评论
为什么被折叠?



