-4- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
--与逻辑,或逻辑,非逻辑和异或逻辑。与、或和非的关系可以通过一个电路的例子来说明,见图1-1: | |||||||||||||||||||||
![]() |
|||||||||||||||||||||
图1-1 三种逻辑关系示意图 | |||||||||||||||||||||
在三个图中,灯被点亮的条件是什么呢?很明显,当A点电压和电源电压一致时(即A点输出为1时),灯就会亮。看来主要的问题就是如何使A点输出1? 对于(a)图,只有当开关K1,K2都闭合时,A点才会与电源接通,此时灯亮。若把"开关闭合"这一动作用"1"表示,把"开关断开"用"0"表示,则可以说,在(a)图中只有两个开关都是"1"时,A点才会输出"1"。这种开关状态与输出之间的关系就是"与"逻辑关系。 对于(b)图来讲,两个开关或者K1为"1"(接通),或者K2为"1",或者两者都为"1",均可以使A点输出为"1",这两个开关与输出之间的逻辑关系就称为"或"逻辑关系。 对于(c)图而言,当K为"0"时A点才会输出"1",K为"1"时电源被短路,此时A点输出"0"。这种逻辑关系称为"非"逻辑关系。 "异或"关系不大好用图表达,但是异或关系有一个重要的特点,就是当进行异或操作的两个数"相同"时所得结果就是"0",而两个数"不同"时就得"1"。这是一个十分重要的特性,大家需牢牢记住。 所谓逻辑操作,就是把两个数按照选定的某种逻辑关系加以处理并得出结果的过程。逻辑操作通常用于使一个二进制数中的某些数位的状态变成我们需要的其它状态,而不改变其它位。 在汇编语言中,基本的逻辑操作有四种:与操作、或操作、非操作和异或操作。分别记作AND、OR、NOT和XOR。表1-3给出了这四种操作的具体情况。 |
|||||||||||||||||||||
表1-3 四种逻辑操作执行的结果 | |||||||||||||||||||||
进行逻辑操作的两个数值 | 不同的逻辑操作及其结果 | ||||||||||||||||||||
A | B | AND | OR | NOT* | XOR | ||||||||||||||||
0 | 0 | 0 | 0 | 1 | 0 | ||||||||||||||||
0 | 1 | 0 | 1 | 1 | 1 | ||||||||||||||||
1 | 0 | 0 | 1 | 0 | 1 | ||||||||||||||||
1 | 1 | 1 | 1 | 0 | 0 | ||||||||||||||||
* 注:"非"操作只对一个数进行,表中选择的是A。 | |||||||||||||||||||||
下面的例子说明了这四种逻辑操作的应用 | |||||||||||||||||||||
例1.5 给定一个八位二进制数10110100 ① 求一个八位二进制数,与给定的数作OR操作,要求结果为10111101。 ② 求一个八位进制数,与给定的数作AND操作,要求结果为00110000。 |
|||||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |