4.3.5 逻辑运算指令
逻辑运算指令是对逻辑数(无符号数)进行处理,包括逻辑与、逻辑或、逻辑异或、取反等逻辑操作,数据长度可以是字节、字、双字。
1)字节逻辑运算指令ANDB、ORB、XORB、INVB
逻辑运算指令包括字节与指令ANDB、字节或指令ORB、字节异或指令XORB和字节取反指令INVB。在梯形图LAD及功能块图FBD中,字节逻辑运算指令以功能框的形式编程,指令的名称如下。
(1)字节与指令ANDB:当使能输入端EN有效时,对2个1字节长的逻辑数IN1和IN2,按位相与,得到1字节的运算结果放OUT。
在语句表STL中,IN2(或IN)与OUT为同一个存储单元,字节逻辑运算的指令格式是ANDB IN1,OUT。指令执行结果为:IN1ANDB IN2(OUT)=OUT。
(2)字节或指令ORB:当使能输入端EN有效时,对2个1字节长的逻辑数IN1和IN2,按位相或,得到1字节的运算结果放OUT。
在语句表STL中,IN2(或IN)与OUT为同一个存储单元,字节逻辑运算的指令格式是ORB IN1,OUT。指令执行结果为:IN1ORB IN2(OUT)=OUT。
(3)字节异或指令XORB:当使能输入端EN有效时,对2个1字节长的逻辑数IN1和IN2,按位相异或,得到1字节的运算结果放OUT。
在语句表STL中,IN2(或IN)与OUT为同一个存储单元,字节逻辑运算的指令格式是XORB IN1,IN2(OUT)。指令执行结果为:IN1XORB IN2(OUT)=OUT。
(4)字节取反指令INVB:当使能输入端EN有效时,对2个1字节长的逻辑数IN,按位取反,得到1字节的运算结果放OUT。
在语句表STL中,IN2(或IN)与OUT为同一个存储单元,字节逻辑运算的指令格式是INVB IN(OUT)。指令执行结果为:INVB IN(OUT)=OUT。
字节逻辑运算过程见表4-28。
表4-28 字节逻辑运算指令的运算过程
2)字逻辑运算指令ANDW、ORW、XORW、INVW
字逻辑运算指令包括字与指令ANDW、字或指令ORW、字异或指令XORW和字取反指令LNVW。
在梯形图LAD及功能块图FBD中,字逻辑运算指令以功能框的形式编程,指令名称及功能如下。
(1)字与指令ANDW:当使能输入端EN有效时,对2个1字长的逻辑数IN1和IN2,按位相与,得到1个字长的运算结果放OUT。
在语句表STL中,IN2(或IN)与OUT为同一个存储单元,字节逻辑运算的指令格式为:ANDW IN1,OUT。指令执行结果为:IN1ANDW IN2(OUT)=OUT。
(2)字或指令ORW:当使能输入端EN有效时,对2个1字长的逻辑数IN1和IN2,按位相或,得到1个字长的运算结果放OUT。
在语句表STL中,IN2(或IN)与OUT为同一个存储单元,字节逻辑运算的指令格式为:ORW IN1,IN2OUT。指令执行结果为:IN1ORW IN2(OUT)=OUT。
(3)字异或指令XORW:当使能输入端EN有效时,对2个1字长的逻辑数IN1和IN2,按位相异或,得到1个字长的运算结果放OUT。
在语句表STL中,IN2(或IN)与OUT为同一个存储单元,字节逻辑运算的指令格式为:XORW IN1,IN2(OUT)。指令执行结果为:IN1XORW IN2(OUT)=OUT。
(4)字取反指令INVW:当使能输入端EN有效时,对1个字长的逻辑数IN,按位取反,得到1个字长的运算结果放OUT。
在语句表STL中,IN2(或IN)与OUT为同一个存储单元,字节逻辑运算的指令格式为:INVW OUT。指令执行结果为:INVW IN(OUT)=OUT。字逻辑运算过程见表4-29。
表4-29 字逻辑运算指令的运算过程
3)双字逻辑运算指令ANDD、ORD、XORD、INVD
双字逻辑运算指令包括双字与指令ANDD、双字或指令ORD、双字异或指令XORD和双字取反指令INVD。在梯形图LAD及功能块图FBD中,双字逻辑运算指令以功能框形式编程,指令的名称及功能如下。
(1)双字与指令ANDD:当使能输入端EN有效时,对2个双字长的逻辑数IN1和IN2,按位相与,得到1个双字长的运算结果放OUT。双字与指令格式为:ANDD IN1,OUT。指令执行结果为:IN1ANDD IN2(OUT)=OUT。
(2)双字或指令ORD:当使能输入端EN有效时,对2个双字长的逻辑数IN1和IN2,按位相或,得到1个双字长的运算结果放OUT。双字或指令格式为:ORD IN1,OUT。指令执行结果为:IN1ORD IN2(OUT)=OUT。
(3)双字异或指令XORD:当使能输入端EN有效时,对2个双字长的逻辑数IN1和IN2,按位异或,得到1个双字长的运算结果放OUT。双字异或指令格式为:XORD IN1,IN2(OUT)。指令执行结果为:IN1XORD IN2(OUT)=OUT。
(4)双字取反指令INVD:当使能输入端EN有效时,对1个双字长的逻辑运算数IN,按位取反,得到1个双字长的运算结果放OUT。双字取反指令格式为:INVD OUT。指令执行结果为:INVD IN(OUT)=OUT。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。