《汇编程序设计与计算机体系结构:软件工程师教程》 —1.5 布尔表达式
1.5 布尔表达式
布尔逻辑是计算机与编程的基本知识。要想学习后续的章节,就必须先了解这些知识。布尔表达式可以用来编写判断语句,以实现某种决策,也可以用来执行按位运算。布尔表达式中的操作数都只能取 0/1 这两种值,或者说,要么是 false(假),要么是 true(真)。下面讲解四种布尔运算:NOT(非)、AND(与)、OR(或)、XOR(异或)。在不同的场合,这四种运算会用不同的符号来表示(参见表1-7),然而我们在这里还是采用这些运算本身的名字来称呼它们。
表 1-7 用来表示布尔运算的符号
布尔运算的规则(参见表1-8~表1-11)是:
NOT:反转操作数(或者说,对操作数取反)。
AND:只有当参与运算的所有操作数都是 true 时,结果才是 true,否则是 false。
OR:只有当参与运算的所有操作数都是 false 时,结果才是 false,否则是 true。
XOR:如果两个操作数中有且只有一个是 true,那么结果是 true。如果两个都是 true或者false,那么结果是 false。
二进制的 0 表示 false,1 表示 true。范例 1-18 以两个二进制数为例,演示了一些布尔表达式的运算结果。
范例1-18 二进制数的布尔运算
在后面的章节中大家就会看到,这四种布尔运算对汇编语言很有用。比方说, NOT 运算可以用来计算反码,AND 运算可以用来执行栈对齐,也可以切换大写与小写,OR 运算可以判断数字是大于、小于还是等于 0,XOR 运算可以用来清零,还可以判断某数是奇数还是偶数。
此外,通过掩码(mask),可以用 AND 运算来关闭二进制位(也就是将其设置成 0),用 OR 运算来打开二进制位(也就是将其设置成 1)。掩码是用来操作位域(bit field)以完成某种任务的值。范例 1-19 演示了掩码的三种用法。第一种是用 OR 操作把每个二进制位都设置成 1,第二种是用 AND 操作把每个二进制位都设置成 0,第三种更实用,可以判断 2 号位置上的二进制位(此处假设从 0 开始编号,最右侧的二进制位是 0 号)是否是 1。构造这样一个掩码,把有待判断的位置写成 1,其余的位置写成 0,然后对受测数字及该掩码求 AND,若结果不为 0,则说明受测数字的对应二进制位是 1。
范例 1-19 掩码的用法
- 点赞
- 收藏
- 关注作者
评论(0)