一、逻辑运算指令
01
与非指令
指令如图1所示,NAND 字节、NAND 字和 NAND 双字指令对两个输入值 IN1 和 IN2 的相应位执行逻辑 NAND运算,将计算结果装载到分配给 OUT 的存储单元中。
与非指令是IN1和IN2引脚地址数据先进行与运算,与运算后的结果再进行非运算并输出结果到OUT引脚的地址,例如:1和0与的结果为0,0非后的结果为1,非就是取反,那么1和0与非的结果为1。
知识补充:与运算,都为1输出为1,否则为0。
▶ 1和1与运算结果为1
▶ 1和0与运算结果为0
▶ 0和1与运算结果为0
▶ 0和0与运算结果为0
指令数据类型如下:NAND_B是Byte的数据类型,NAND_W是Int的数据类型,NAND_DW是Dword的数据类型。如果不太清楚指令的数据类型,可以把鼠标放在指令处不动2s即可看到指令对应引脚的数据类型。
图1
测试如图2所示,在状态图表中分别对VB0、VB1、VW100、VW102、VD200、VD204进行赋值,可以看到VB2、VW104、VD208为与非后的结果。
图2
02
或非指令
指令如图3所示,NOR 字节、NOR 字和 NOR 双字指令对两个输入值 IN1 和 IN2 的相应位执行逻辑 NOR运算,将计算结果装载到分配给 OUT 的存储单元中。
或非指令是IN1和IN2引脚地址数据先进行或运算,或运算后的结果再进行非运算并输出结果到OUT引脚的地址,例如:1和0与的结果为1,1非后的结果为0,非就是取反,那么1和0或非的结果为0。
知识补充:或运算,任意为1输出为1,否则为0。
▶ 1和1或运算结果为1
▶ 1和0或运算结果为1
▶ 0和1或运算结果为1
▶ 0和0或运算结果为0
指令数据类型如下:NOR _B是Byte的数据类型,NOR _W是Int的数据类型,NOR_DW是Dword的数据类型。如果不太清楚指令的数据类型,可以把鼠标放在指令处不动2s即可看到指令对应引脚的数据类型。
图3
测试如图4所示,在状态图表中分别对VB0、VB1、VW100、VW102、VD200、VD204进行赋值,可以看到VB3、VW106、VD212为或非后的结果。
图4
03
异或非指令
指令如图5所示, NXOR 字节、NXOR 字和 NXOR 双字指令对两个输入值 IN1 和 IN2 的相应位执行逻辑 NXOR运算,并将计算结果装载到存储单元 OUT 中。
异或非指令是IN1和IN2引脚地址数据先进行异或运算,异或运算后的结果再进行非运算并输出结果到OUT引脚的地址,例如:1和0异或的结果为1,1非后的结果为0,非就是取反,那么1和0异或非的结果为0。
知识补充:异或运算,相同输出为0,不相同为1。
▶ 1和1异或运算结果为0
▶ 1和0异或运算结果为1
▶ 0和1异或运算结果为1
▶ 0和0异或运算结果为0
指令数据类型如下:NXOR _B是Byte的数据类型,NXOR _W是Int的数据类型,NXOR_DW是Dword的数据类型。如果不太清楚指令的数据类型,可以把鼠标放在指令处不动2s即可看到指令对应引脚的数据类型。
图5
测试如图6所示,在状态图表中分别对VB0、VB1、VW100、VW102、VD200、VD204进行赋值,可以看到VB4、VW108、VD216为异或非后的结果。
图6