首页 理论教育 逻辑运算指令的使用方法介绍

逻辑运算指令的使用方法介绍

时间:2023-06-29 理论教育 版权反馈
【摘要】:图5.30逻辑运算指令“与”运算时两个操作数的同一位如果均为1,运算结果的对应位为1,否则为0。表5.7字逻辑运算的结果图5.31 逻辑运算指令2.解码与编码指令假设输入参数IN的值为 n,解码(译码)指令DECO将输出参数OUT的第n位置位为l,其余各位置0,相当于数字电路中译码电路的功能。IN的值为5时,OUT为2#0010 0000,仅第5位为1。图5.32SEL与MUX指令指令MUX根据输入参数K的值,选中某个输入数据,并将它传送到输出参数OUT指定的地址。

逻辑运算指令的使用方法介绍

1.逻辑运算指令

逻辑运算指令对两个输入 IN1 和 IN2 逐位进行逻辑运算。逻辑运算的结果存放在输出OUT指定的地址(见图5.30)。

图5.30 逻辑运算指令

“与”(AND)运算时两个操作数的同一位如果均为1,运算结果的对应位为1,否则为0(见表5.7)。

“或”(OR)运算时两个操作数的同一位如果均为0,运算结果的对应位为0,否则为l。

异或”(XOR)运算时两个操作数的同一位如果不相同,运算结果的对应位为l,否则为0。以上指令的操作数IN1、IN2和OUT的数据类型为十六进制的Byte、Word和DWord。

取反指令INV(见图5.31)将输入IN中的二进制整数逐位取反,即各位的二进制数由0变1,由l变0,运算结果存放在输出OUT指定的地址。

表5.7 字逻辑运算的结果

图5.31  逻辑运算指令

2.解码与编码指令

假设输入参数IN的值为 n,解码(译码)指令DECO(Decode)将输出参数OUT的第n位置位为l,其余各位置0,相当于数字电路中译码电路的功能。利用解码指令,可以用输入IN的值来控制OUT中某一位的状态。(www.xing528.com)

如果输入IN的值大于31,将IN的值除以32以后,用余数来进行解码操作。

IN的值为0~7(3位二进制数)时,输出OUT的数据类型为8位的字节。

IN的值为0~15(4位二进制数)时,输出OUT的数据类型为16位的字。

IN的值为0~31(5位二进制数)时,输出OUT的数据类型为32位的双字。

IN的值为5时(见图5.31),OUT为2#0010 0000(16#20),仅第5位为1。

编码指令ENCO(Encode)与解码指令相反,将IN中为1的最低位的位数送给输出参数OUT指定的地址,IN的数据类型可选Byte、Word和DWord,OUT的数据类型为Int。

如果IN为2#0010 1000(见图5.31),OUT指定的MB150中的编码结果为3。如果IN为1或0,MB150的值为0;如果IN为0,ENO为0状态。

3.SEL与MUX指令

指令SEL(Select)的Bool输入参数G为0时选中IN0(见图5.32),G为1时选中IN1,并将它们保存到输出参数OUT指定的地址。

图5.32 SEL与MUX指令

指令MUX(Multiplex,多路开关选择器)根据输入参数K的值,选中某个输入数据,并将它传送到输出参数OUT指定的地址。K=m时,将选中输入参数INm。如果K的值超过允许的范围,将选中输入参数ELSE,将MUX指令拖放到程序编辑器时,它只有IN0、INl和ELSE。用鼠标右键点击该指令,执行弹出快捷菜单中的指令“插入输入”,可以增加一个输入。反复使用这一方法,可以增加多个输入。增添输入后,用右键点击某个输入INn从方框伸出的水平短线,执行出现的快捷菜单中的指令“删除”,可以删除选中的输入。删除后自动调整剩下的输入INn的编号。

参数K的数据类型为UInt,INn、ELSE和OUT可以取12种数据类型,它们的数据类型应相同。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈