51单片机逻辑运算指令表与示例
扫描二维码
随时随地手机看文章
1.逻辑运算指令的一般性说明
与、或、异或的逻辑运算指令可以Acc或direct为目标。但是以direct为目标时,另一操作数只能是Acc或立即数。
与、或、异或是对位逻辑运算。
其他逻辑运算指令只对Acc操作。
小循环不影响Cy,大循环Cy在循环圈内。
除了RLC和RRC,逻辑运算指令不影响P以外的标志位。
2.与、或、异或的特殊用途
用ANL指令屏蔽指定位
例:ANLA,#0FH;屏蔽高4位
用ORL指令将指定位置1
例:ORLA,#0FH;将低4位置1
用ORL指令拼接一个字节
例:ANLA,#0FH
ANLB,#0F0H
ORLA,B
用XRL指令将指定位取反
例:XRLA,#55H;将D0、D2、D4、D6等位取反
3.循环移位指令的应用
除法运算
左移=无符号数乘2,右移=有符号数除2。
例:A×B,积存(BA)
算法:乘数在(A),积在(R2)(A)。
1)(A)右移一位;
2)(A)移出的一位若为1,则(R2)+被乘数(B);
3)积(R2)(A)双字节右移一位;第2、3步循环8次。
为简化,假定为4位,循环4次。(A)=1011, (B)=1111
MOVR2,#0
MOVR3,#8
CLRC
RRCA
LP:XCHA,R2
JNCRRR
ADDA,B
RRR:RRCA
XCHA,R2;①
RRCA;②
DJNZR3,LP
MOVB,R2
下表第一列为:循环次数-执行点
其余各列为执行点的操作结果。
逻辑尺
以二进制数表示二值逻辑序列,逐位移出,并据此行逻辑控制。