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'的ascii码 or举例:字符的大小写转化'A'->'a' mov al,'A' or al,00100000b a的ascii 为65 al=01000001 or 00100000 al = 01100001 得到97 即 'a'的ascii
0000 0001 0000 0010 ----------- 0000 0011 al=3
标签:汇编,指令