模块三数据处理功能指令的应用3.1数据传送指令简介3.2移位和循环移位指令3.3数据比较指令及其应用3.4数据转换指令及其应用3.5算术逻辑运算指令3.1数据传送指令数据传送指令的作用是把常数或某存储器中的数据传送到另一存储器中。它包括单一数据传送及成组数据传送两大类。3.1.1数据传送指令数据传送指令把输入端(IN)指定的数据传送到输出端(OUT),传送过程中数据值保持不变。数据传送指令按操作数据的类型可分为字节传送(MOVB)指令、字传送(MOVW)指令、双字传送(MOVD)指令、实数传送(MOVR)指令。其指令格式及功能如表3-1所示。表3-1数据传送指令的格式及功能LADSTLMOVBIN,OUTMOVWIN,OUTMOVDIN,OUTMOVRIN,OUT操作数IN:VB、IB、QB、MB、SB、SMB、LB、常量OUT:VB、IB、QB、MB、SB、SMB、LB、ACIN:VW、IW、QW、MW、SW、SMW、LW、T、C、AIW、常量、ACOUT:VW、IW、T、C、QW、MW、IN:VD、ID、QD、MD、SD、SMD、LD、HC、AC、常量OUT:VD、ID、QD、MD、SD、SMD、LD、ACIN:VD、ID、QD、MD、SD、SMD、LD、AC、常量OUT:VD、ID、QD、MD、SD、SMD、LD、AC功能使能端EN(为1)有效时,将一个输入IN的字节、字/整数、双字/双整数或实数送到OUT指定的存储器输出,传送后存储器IN中的内容不变。数据传送指令的用法如图3-1所示I0.0MOV-BENINOUTENOOUTINENI0.1ENOMOV-WOUTINENINI0.3OUTENOMOV-RENI0.2ENOMOV-DWIB1IB2+3276MW1VD1VD4SMD1SMD5(a)梯形图(b)指令语句表MOVBMOVWLDLDMOVRLDMOVDLDIB1,IB2+3276,MW1I0.0I0.1SMD1,SMD5I0.3VD1,VD4I0.2图3-1数据传送指令的用法在图3-1(a)所示的梯形图中,当输入继电器I0.0的常开触点闭合时,字节传送(MOVB)指令将输入继电器I1.0~I1.7中的数据传送到输入继电器I2.0~I2.7中;当输入继电器I0.1的常开触点闭合时,字传送(MOVW)指令将常数3276传送到内部标志位存储器M1.0~M2.7(共16位)中;当输入继电器I0.2的常开触点闭合时,双字传送(MOVD)指令将变量存储器V1.0~V4.7(32位)中的数据传送到变量存储器V4.0~V7.7(32位)中;当输入继电器I0.3的常开触点闭合时,实数传送指令(MOVR)将特殊标志位存储器SM1.0~SM4.7(32位)中的数据传送到特殊标志位存储器SM5.0~SM8.7(32位)中。数据块传送指令是把从输入端(IN)指定地址的N个连续字节、字、双字的内容传送到从输出端(OUT)指定开始的N个连续字节、字、双字的存储单元中去。传送过程中各存储单元的内容不变。N为1~255。数据块传送指令按操作数据的类型可分为字节块传送(BMB)指令、字块传送(BMW)指令、双字块传送(BMD)指令。其指令格式及功能如表3-2所示。3.1.2数据块传送指令表3-2数据传送指令的格式及功能LADSTLBMBIN,OUT,NBMWIN,OUT,NBMDIN,OUT,N操作数IN:VB、IB、QB、MB、SB、SMB、LB。OUT:VB、IB、QB、MB、SB、SMB、LBIN:VW、IW、QW、MW、SW、SMW、LW、T、C、AIW。OUT:VW、IW、QW、MW、SW、SMW、LW、T、C、AQW数据类型:字IN/OUT:VD、ID、QD、MD、SD、SMD、LD数据类型:双字功能使能输入有效时,即EN=1时,把从输入IN开始的N个字节(字、双字)传送到以输出OUT开始的N个字节(字、双字)中数据块传送指令的用法如图3-2所示。I0.0BLKMOV-BENINOUTENOIB1SB1N4MW1NINENI0.14SW1ENOOUTBLKMOV-WSB1ENINN5I0.2IB1BLKMOV-DOUTENO(a)梯形图(b)指令语句表BMBBMWLDLDBMDLDIB1,SB1,4SW1,MW1,4I0.0I0.1IB1,SB1,5I0.2图3-2数据块传送指令的用法在图3-2(a)所示的梯形图中,当输入继电器I0.0的常开触点闭合时,字节块传送(BMB)指令将I1.0~I4.7中的数据传送至S1.0~S4.7中;当输入继电器I0.1的常开触点闭合时,字块传送(BMW)指令将S1.0~S4.7中的数据传送至M1.0~M4.7中;当输入继电器I0.2的常开触点闭合时,双字块传送(BMD)指令将I1.0~I10.7中的数据传送至S1.0~S10.7中。1.字节交换指令:字节交换指令用来交换输入字IN的最高位字节和最低位字节。其指令格式及功能如表3-3所示。3.1.3字节交换、字节立即读写指令LADSTL功能及说明SWAPIN功能:使能输入EN有效时,将输入字IN的高字节与低字节交换,结果仍放在IN中。IN:VW、IW、QW、MW、SW、SMW、T、C、LW、AC。数据类型:字字节交换指令用法如图3-3所示。图3-3字节交换指令的用法LDI0.1SWAPVW50表3-3字节交换指令的格式及功能字节立即读指令(MOV-BIR)读取实际输入端IN给出的1个字节的数值,并将结果写入OUT所指定的存储单元,但输入映像寄存器未更新。字节立即写指令(MOV-BIW)从输入IN所指定的存储单元中读取1个字节的数值并写入(以字节为单位)实际输出OUT端的物理输出点,同时刷新对应的输出映像寄存器。其指令格式及功能如表3-4所示。2.字节立即读写指令表3-4字节立即读指令的格式及功能LADSTL功能及说明BIRIN,OUT功能:字节立即读。IN:IB;OUT:VB、IB、QB、MB、SB、SMB、LB、AC。数据类型:字节BIWIN,OUT功能:字节立即写IN:VB、IB、QB、MB、SB、SMB、LB、AC、常量;OUT:QB。数据类型:字节移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。前两种移位指令按操作数的长度可分为字节型、字型、双字型三种。3.2.1右移位指令SHR右移位指令SHR(ShiftRight))就是当使能端有效时,把输入端(IN)指定的数据右移N位,结果存入指定的输出(OUT)单元中,左端移出位补0,最后一个移出位保存在溢出标志位存储器SM1.1中。如果移出位结果为0,则零标志位SM1.0置1。右移位指令按操作数的类型可分为字节右移位(SHR-B)指令、字右移位(SHR-W)指令、双字右移位(SHR-DW)指令。其指令格式及功能如表3-5所示。3.2移位和循环移位指令表3-5右移位指令SHR的指令格式及功能LADSTLSRBOUT,NSRWOUT,NSRDOUT,N操作数IN:VB、IB、QB、MB、SB、SMB、LB、AC、常数。OUT:VB、IB、QB、MB、SB、SMB、LB、AC。数据类型:字节IN:VW、IW、QW、MW、SW、SMW、LW、T、C、AIW、AC、常数。OUT:VW、IW、QW、MW、SW、SMW、LW、T、C、AC。数据类型:字IN:VD、ID、QD、MD、SD、SMD、LD、HC、AC、常量OUT:VD、ID、QD、MD、SD、SMD、LD、AC.数据类型:双字功能使能输入有效时,即EN=1时,把从输入IN开始的字节(字、双字)数右移N位后,结果输到OUT存储单元中。移出位补0,最后一个移出位保存在溢出标志位存储器SM1.1中右移位指令的用法如图3-4所示,当使能端EN=1时,其移位过程如图3-4(c)。I0.0SHR-BENINOUTENOIB0IB0N1ENI0.1ENOOUTSHR-WI0.2SHR-DWOUTENOMW02MW04MD2MD4NINENINN(a)梯形图(b)语句表NETWORK1LDSRBNETWORK2LDSRWNETWORK3LDMOVDSRDI0.0IB0,1I0.1MW0,2I0.2MD2,MD4MD4,4IB0移位前IB0移位后I0.7I0.6I0.5I0.4I0.3I0.2I0.1I0.00I0.7I0.6I0.5I0.4I0.3I0.2I0.1SM1.1I0.0MW0移位后MW0移位前MD2移位前移位后MD4M1.7M1.6M1.5M1.4……………M0.3M0.2M0.1M0.000M1.7M1.6M1.5M1.4……………M0.3M0.2M0.1SM1.116位16位M2.7M2.6M2.5M2.4…………M0.4M0.3M0.2M0.1M0.032位32位0000M2.7M2.6M2.5M2.4…………M0.4SM1.1M0.3(C)运行结果补1位0补2位0补4位0图3-4右移位指令的用法右移位指令SHL(ShiftLeft)就是当使能端有效时,把输入端(IN)指定的数据左移N位,结果存入指定的输出(OUT)单元中,右端移出位补0,最后一个移出位保存在溢出标志位存储器SM1.1中。如果移出位结果为0,则零标志位SM1.0置1左移位指令按操作数的类型可分为字节左移位(SHR-B)指令、字左移位(SHL-W)指令、双字左移位(SHL-DW)指令。其指令格式及功能如表3-6所示。左移位指令的用法如图3-5所示。当使能端EN=1时,其移位过程如图3-5(c)。3.2.2左移位指令SHLI0.0SHL-BENINOUTENOIB0IB0N1ENI0.1ENOOUTSHL-WENI0.2SHL-DWOUTENOMW02MW04MD2MD4NININNNETWORK1LDSLBNETWORK2LDSLWNETWORK3LDMOVDSLDI0.0IB0,1I0.1MW0,2I0.2MD2,MD4MD4,4(a)梯形图(b)语句表I0.7I0.6I0.5I0.4I0.3I0.2I0.1I0.0I0.6I0.5I0.4I0.3I0.2I0.1I0.00SM1.1I0.7MW0移位前MD2移位前移位后MD4M1.7M1.6M1.5M1.4……………M0.3M0.2M0.1M0.0M1.5M1.4……………M0.3M0.2M0.1M0.000M1.6SM1.116位16位M2.7M2.6M2.5M2.4…………M0.4M0.3M0.2M0.1M0.032位32位M2.3…………M0.4M0.3M0.2M0.1M0.00000SM1.1M2.4MW0移位后IB0移位前IB0移位后补1位0补2位0补4位0(C)运行结果图3-5左移位指令的用法表3-6左移位指令SHL的指令格式及功能LADSTLSLBOUT,NSLWOUT,NSLDOUT,N操作数IN:VB、IB、QB、MB、SB、SMB、LB、AC、常数。OUT:VB、IB、QB、MB、SB、SMB、LB、AC。数据类型:字节IN:VW、IW、QW、MW、SW、SMW、LW、T、C、AIW、AC、常数。OUT:VW、IW、QW、MW、SW、SMW、LW、T、C、AC。数据类型:字IN:VD、ID、QD、MD、SD、SMD、LD、HC、AC、常量OUT:VD、ID、QD、MD、SD、SMD、LD、AC.数据类型:双字功能使能输入有效时,即EN=1时,把从输入IN开始的字节(字、双字)数左移N位后,结果输出OUT存储单元中。移出位补0,最后一个移出位保存在溢出标志位存储器SM1.1中循环右移位指令的用法如图3-6所示。当使能端EN=1时,其移位过程如图3-6(c)。I0.7I0.6I0.5I0.4I0.3I0.2I0.1I0.0I0.0I0.7I0.6I0.5I0.4I0.3I0.2I0.1SM1.1MW0移位前MD2移位前移位后MD4M1.7M1.6M1.5M1.4……………M0.3M0.2M0.1M0.0M0.1M0.0M1.7M1.6M1.5M1.4……………M0.3M0.216位16位M