• 汇编语言布尔表达式(NOT、AND、OR)

    布尔代数(boolean algebra)定义了一组操作,其值为真(true)或假(false)。它的发明者是十九世纪中叶的数学家乔治・布尔(George Boole)。

    在数字计算机发明的早期,人们发现布尔代数可以用来描述数字电路的设计。同时,在计算机程序中,布尔表达式被用来表示逻辑操作。

    一个布尔表达式(boolean expression)包括一个布尔运算符以及一个或多个操作数。每个布尔表达式都意味着一个为真或假的值。以下为运算符集合:

    • 非(NOT):标记为 ¬ 或 ~ 或 '
    • 与(AND):标记为^或 ·
    • 或(OR):标记为 ∨ 或 +

    NOT 是一元运算符,其他运算符都是二元的。布尔表达式的操作数也可以是布尔表达式。示例如下:

    达式 说明 表达式 说明
    ¬X NOT X ¬X∨Y (NOT X) OR Y
    X^Y X AND Y ¬(X^Y) NOT (X AND Y)
    X∨Y X OR Y X^¬Y X AND (NOT Y)

    NOT

    NOT 运算符将布尔值取反。用数学符号书写为 ¬X,其中,X 是一个变量(或表达式),其值为真(T)或假(F)。下表列出了对变量 X 进行 NOT 运算后所有可能的输岀。 左边为输入,右边(阴影部分)为输出:

    X ¬X
    F T
    T F

    真值表中,0 表示假,1 表示真。

    AND

    布尔运算符 AND 需要两个操作数,用符号表示为 X ^ Y。下表列出了对变量 X 和 Y 进行 AND 运算后,所有可能的输出(阴影部分):

    X Y X^Y
    F F F
    F T F
    T F F
    T T T

    当两个输入都是真时,输出才为真。这与 C++ 和 Java 的复合布尔表达式中的逻辑 AND 是相对应的。

    汇编语言中 AND 运算符是按位操作的。如下例所示,X 中的每一位都与 Y 中的相应位进行 AND 运算:

    X :        11111111
    Y :        00011100
    X ^ Y :  00011100

    如下图所示,结果值 0001 1100 中的每一位表示的是 X 和 Y 相应位的 AND 运算结果。

    两个二进制整数按位AND运算

更多...

加载中...