求助汇编语言中or和and的意义

来源:百度知道 编辑:UC知道 时间:2024/05/03 03:58:12
不太理解这两个指令的意义,能不能举个例子,请达人救我.

mov al,1
or al,2
这两条命令执行后的结果是什么,为什么是这个结果?谢谢

OR是按位“或”操作,当且仅当两操作数对应位都为“0”时结果相应位为“0”,否则结果相应位为“1”。
例:1101B OR 0100B = 1101B
AND是按位“与”操作,当且仅当两操作数对应位都为“1”时结果的相应位为“1”,否则结果相应位为“0”。
例:1101B AND 0100B = 0100B

mov al,1 ;0001B送AL
or al,2 ;0001B OR 0010B 结果送AL 即(AL0)=0011B=3
这两条命令执行后的结果是什么(AL)=3

mov al ,1
把1存放到al这个寄存器里
or al, 2
把 al中的数与2相或
也就是00000001与00000010相或
结果是00000011也就是3
所以al中为3

AND主要用在使一个操作数中的若干位维持不变,而另外若干位清为0的场合
OR主要用在使一个操作数中的若干位维持不变,而另外若干位清为1的场合
这两个指令也可以把CF清0,自己与自己相“与”或相“或”,则值不变,CF清为0
----------------------------
0000 0001 与0000 0010相或,结果为0000 0011
AL=3

or指令对目的操作数和源操作数进行或运算,结果存在目的操作数中.
and指令对目的操作数和源操作数进行与运算,结果存在目的操作数中.
and举例:字符的大小写转化'a'->'A'
mov al,'a'
and 01000001b
a的ascii 为97 al= 01100001
and 01000001
al = 01000001
得到65 即 'A