返回列表 发帖

[原创] 汇编基础一日一学习12

大家好,今天我们来学习下and 和 or 指令。想必学过高级语言的朋友都应该学过。但是你是否真正的去深入的学习过这两个指令呢。 呵呵,今天就让我带领大家深入的来学习,这两个指令也是非常有用的。

  好我们首先来介绍下and指令。

  and:逻辑与指令,按位进行与运算。

  这里教给大家一个小诀窍去记and与操作。大家看这句话 “我和你去公园”,我和你是两个操作数,这两个操作数是不能分离的,(也就是说我和你都得去公园) 也就是他们必须都为真(1),那么返回的也就为1(也就是去公园为真)。如果有一个为0,返回的也就为0。 所以一般我们都用逻辑and来设置相关的操作位为0。
   
举个例子 (注意:计算机中的数值位是从0开始的)
al = 00001000B (B表示二进制位)

那么此时我们想把al中的第3位1,通过做逻辑与运算来把它给设置为0。此时该怎么做呢?

and al, 11110111B

al = 00000000B
如我上面说的,因为逻辑与运算,必须两个操作数都为1,那么返回为1。有一个为0,则返回为0。

or :逻辑或运算,按位进行或运算。

  同样教给大家一个小诀窍,大家看这句话 “她或者你和我一起去公园”。那么她或者你,那么此时只要一个人跟我去公园就行了。那么去公园也就表示真了。 所以or 两个操作数,有一个为1,则返回的结果为1 。所以一般我们都用逻辑or来设置相关的操作位为1.

举个例子
al = 00100100B (B表示二进制位)

那么此时我想把al中第3位0设置为1。那么该怎么做呢。

or al, 00001000B

此时因为有一位为1,则结果为1。此时al = 00101100B 。

很简单吧。呵呵,出道题考考大家。


小作业:
  (1)此时al = 00101110B,那么此时我想把al中的第2位设置为0(注意:计算机中的数值位是从0开始计算的),那么该怎么做?  (必须用到今天学的and or指令)


  (2)此时al = 00100010B ,那么此时我想把al中第三位设置为1,(注意:计算机中的数值位是从0开始计算的),那么该怎么做?  (必须用到今天学的and or指令) 。
希望做站长本人的学生请点击
http://www.3ast.com/viewthread.php?tid=13841
QQ790653916只负责SEO以及收费教学等方面联系,他人勿扰

于智者同行,你会不同凡响;与高人为伍,你会登上巅峰

学习了 LZ辛苦了

TOP

1.and al,00101010B
2.or al,00101010B

TOP

学习了 嘿嘿 有的还不太懂

TOP

学习.................

TOP

返回列表