首页 理论教育 如何使用算术运算指令进行计算?

如何使用算术运算指令进行计算?

时间:2023-06-27 理论教育 版权反馈
【摘要】:算术运算指令包括加、减、乘、除及常用函数指令。算术运算指令在梯形图和指令表中的具体执行过程见表4-15。这个原则适用于所有的算术运算指令,且乘法和加法对应,减法和除法对应。表4-18 整数乘除法指令格式整数双整数乘除法指令操作数及数据类型和加减运算的相同。表4-19 实数加减乘除指令例4-12实数运算指令的应用,程序如图4-14所示。图4-14 例4-12梯形图4.数学函数变换指令数学函数变换指令包括平方根、自然对数、指数及三角函数等。

如何使用算术运算指令进行计算?

算术运算指令包括加、减、乘、除及常用函数指令。在梯形图编程和指令表编程时对存储单元的要求是不同的,所以在使用时一定要注意存储单元的分配。梯形图编程时,IN2和OUT指定的存储单元可以相同,也可以不同;指令表编程时,IN2和OUT要使用相同的存储单元。算术运算指令在梯形图和指令表中的具体执行过程见表4-15。若在梯形图编程时,IN2和OUT使用了不同的存储单元,在转换为指令表格式时会使用数据传递指令对程序进行处理,将IN2与OUT变为一致,表4-16中以整数加法指令具体说明。一般来说,梯形图对存储单元的分配更加灵活。

表4-15 算术运算指令在梯形图和指令表中的具体执行过程

978-7-111-49003-6-Chapter04-30.jpg

表4-16 运算指令在梯形图和指令表中的转换处理

978-7-111-49003-6-Chapter04-31.jpg

1.整数与双整数加减法指令

整数加法(ADD-I)和减法(SUB-I)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16bit的结果输出到OUT。

双整数加法(ADD-D)和减法(SUB-D)指令是:使能输入有效时,将两个32位符号整数相加或相减,并产生一个32bit的结果输出到OUT。

整数与双整数加减法指令格式见表4-17。

表4-17 整数与双整数加减法指令格式

978-7-111-49003-6-Chapter04-32.jpg

说明:

①当IN1、IN2和OUT操作数地址不同时,在STL指令中,首先用数据传送指令将IN1中的数值送入OUT,然后再执行加、减运算,即:OUT+IN2=OUT、OUT-IN2=OUT。为了节省内存,在整数加法的梯形图指令中,可以指定IN1或IN2=OUT,这样,可以不用数据传送指令。如指定INI=OUT,则语句表指令为:+I IN2,OUT;如指定IN2=OUT,则语句表指令为:+I IN1,OUT。在整数减法的梯形图指令中,可以指定IN1=OUT,则语句表指令为:-I IN2,OUT。这个原则适用于所有的算术运算指令,且乘法和加法对应,减法和除法对应。

②整数与双整数加减法指令影响算术标志位SM1.0(零标志位)、SM1.1(溢出标志位)和SM1.2(负数标志位)。

例4-10求2000加400的和,2000在数据存储器VW200中,结果放入AC0。程序如图4-12所示。

978-7-111-49003-6-Chapter04-33.jpg

图4-12 例4-10梯形图

2.整数乘除法指令

整数乘法指令(MUL-I)是:使能输入有效时,将两个16位符号整数相乘,并产生一个16bit的积,从OUT指定的存储单元输出。

整数除法指令(DIV-I)是:使能输入有效时,将两个16位符号整数相除,并产生一个16bit的商,从OUT指定的存储单元输出,不保留余数。如果输出结果大于一个字,则溢出位SM1.1置位为1。

双整数乘法指令(MUL-D):使能输入有效时,将两个32位符号整数相乘,并产生一个32bit的乘积,从OUT指定的存储单元输出。

双整数除法指令(DIV-D):使能输入有效时,将两个32位整数相除,并产生一个32bit的商,从OUT指定的存储单元输出,不保留余数。

整数乘法产生双整数指令(MUL):使能输入有效时,将两个16位整数相乘,得出一个32bit的乘积,从OUT指定的存储单元输出。

整数除法产生双整数指令(DIV):使能输入有效时,将两个16位整数相除,得出一个32bit的结果,从OUT指定的存储单元输出。其中高16位放余数,低16位放商。

整数乘除法指令格式见表4-18。

表4-18 整数乘除法指令格式

978-7-111-49003-6-Chapter04-34.jpg

整数双整数乘除法指令操作数及数据类型和加减运算的相同。

整数乘法除法产生双整数指令的操作数:

IN1/IN2:VW,IW,QW,MW,SW,SMW,T,C,LW,AC,AIW,常量,*VD,*LD,*AC。数据类型:整数。

OUT:VD,ID,QD,MD,SMD,SD,LD,AC,*VD,*LD,*AC。数据类型:双整数。

使ENO=0的错误条件:0006(间接地址),SM1.1(溢出),SM1.3(除数为0)。

对标志位的影响:SM1.0(零标志位),SM1.1(溢出),SM1.2(负数),SM1.3(被0除)。(www.xing528.com)

例4-11乘除法指令应用举例,程序如图4-13所示。

978-7-111-49003-6-Chapter04-35.jpg

图4-13 例4-11梯形图

3.实数加减乘除指令

实数加法(ADD-R)、减法(SUB-R)指令:将两个32位实数相加或相减,并产生一个32bit的实数结果,从OUT指定的存储单元输出。

实数乘法(MUL-R)、除法(DIV-R)指令:使能输入有效时,将两个32位实数相乘(除),并产生一个32bit的积(商),从OUT指定的存储单元输出。

操作数:

IN1/IN2:VD,ID,QD,MD,SMD,SD,LD,AC,常量,*VD,*LD,*AC。

OUT:VD,ID,QD,MD,SMD,SD,LD,AC,*VD,*LD,*AC。

数据类型:实数。

指令格式见表4-19。

表4-19 实数加减乘除指令

978-7-111-49003-6-Chapter04-36.jpg

例4-12实数运算指令的应用,程序如图4-14所示。

978-7-111-49003-6-Chapter04-37.jpg

图4-14 例4-12梯形图

4.数学函数变换指令

数学函数变换指令包括平方根、自然对数、指数及三角函数等。

①平方根(SQRT)指令:对32位实数(IN)取平方根,并产生一个32bit的实数结果,从OUT指定的存储单元输出。

自然对数(LN)指令:对IN中的数值进行自然对数计算,并将结果置于OUT指定的存储单元中。

求以10为底数的对数时,用自然对数除以2.302585(约等于10的自然对数)。

③自然指数(EXP)指令:将IN取以e为底的指数,并将结果置于OUT指定的存储单元中。

将“自然指数”指令与“自然对数”指令相结合,可以实现以任意数为底、任意数为指数的计算。求yx,输入以下指令:EXP(x*LN(y))。

④三角函数指令:将一个实数的弧度值IN分别求SIN、COS、TAN,得到实数运算结果,从OUT指定的存储单元输出。

函数变换指令格式及功能见表4-20。

表4-20 函数变换指令格式及功能

978-7-111-49003-6-Chapter04-38.jpg

使ENO=0的错误条件:0006(间接地址),SM1.1(溢出),SM4.3(运行时间)。

对标志位的影响:SM1.0(零),SM1.1(溢出),SM1.2(负数)。

例4-13求45°的正弦值。先将45°转换为弧度:(3.14159/180)*45,再求正弦值。程序如图4-15所示。

978-7-111-49003-6-Chapter04-39.jpg

图4-15 例4-13梯形图

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

我要反馈