Board logo

标题: [原创] 汇编基础一日一学习12 [打印本页]

作者: 柔肠寸断    时间: 2009-5-29 00:20     标题: 汇编基础一日一学习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指令) 。

作者: EndTo偌枫    时间: 2009-5-29 07:53

学习了 LZ辛苦了
作者: plantseth    时间: 2009-5-30 16:36

1.and al,00101010B
2.or al,00101010B
作者: syzhangchao    时间: 2009-6-2 01:34

学习了 嘿嘿 有的还不太懂
作者: hkhs615    时间: 2009-12-17 16:21

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




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/) Powered by Discuz! 7.2