算术运算指令-5.2.1

算术运算指令

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

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

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

整数与双整数加减法指令格式如表5-14所示。

表5-14整数与双整数加减法指令格式

MOVWIN1,OUT

MOVWIN1,OUT

MOVDIN1,OUT

MOVDIN1,OUT

功能

IN1+IN2=OUT

IN1-IN2=OUT

IN1+IN2=OUT

IN1-IN2=OUT

操作数及数据类型

IN1/IN2:VW,IW,QW,MW,SW,SMW,T,C,AC,LW,AIW,常量,*VD,*LD,*AC

OUT:VW,IW,QW,MW,SW,SMW,T,C,LW,AC,*VD,*LD,*AC

IN/OUT数据类型:整数

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

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

IN/OUT数据类型:双整数

ENO=0的错误条件

0006间接地址,SM4.3运行时间,SM1.1溢出

说明:

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

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

【例5-11】求5000加400的和,5000在数据存储器VW200中,结果放入AC0。程序如图5-17所示。

MOVWVW200,AC0//VW200→AC0

+I+400,AC0//VW200+400=AC0

图5-17例5-11题图

2.整数乘除法指令

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

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

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

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

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

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

整数乘除法指令格式如表5-15所示。www.plcs.cn

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

整数乘法除法产生双整数指令的操作数: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除)。

表5-15整数乘除法指令格式

MOVWIN1,OUT

MOVWIN1,OUT

MOVDIN1,OUT

MOVDIN1,OUT

MOVWIN1,OUT

MULIN2,OUT

MOVWIN1,OUT

DIVIN2,OUT

功能

IN1*IN2=OUT

IN1/IN2=OUT

IN1*IN2=OUT

IN1/IN2=OUT

IN1*IN2=OUT

IN1/IN2=OUT

【例5-12】乘除法指令应用举例,程序如图5-18所示。

MULAC1VD100

DIVVW10VD200

图5-18例5-12题图

注意:因为VD100包含:VW100和VW102两个字,VD200包含:VW200和VW202两个字,所以在语句表指令中不需要使用数据传送指令。

3.实数加减乘除指令

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

实数乘法(MUL-R)、除法(DIV-R)指令:使能输入有效时,将两个32位实数相乘(除),并产生一个32位积(商),从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 。

数据类型:实数。

指令格式如表5-16所示。

表5-16实数加减乘除指令

MOVDIN1,OUT

MOVDIN1,OUT

MOVDIN1,OUT

MOVDIN1,OUT

功能

IN1+IN2=OUT

IN1-IN2=OUT

IN1*IN2=OUT

IN1/IN2=OUT

ENO=0的错误条件

0006间接地址,SM4.3运行时间,SM1.1溢出

0006间接地址,SM1.1溢出,SM4.3运行时间,SM1.3除数为0

对标志位的影响

SM1.0(零),SM1.1(溢出),SM1.2(负数),SM1.3(被0除)

【例5-13】实数运算指令的应用,程序如图5-19所示。

+RAC1,VD100

/RVD100,AC0

图5-19例5-13题图

4.数学函数变换指令

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

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

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

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

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

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

例如:求23=EXP(3*LN(2))=8;27的3次方根=271/3=EXP(1/3*LN(27))=3。

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

函数变换指令格式及功能如表5-17所示。

表5-17函数变换指令格式及功能

SQRTIN,OUT

功能

SQRT(IN)=OUT

LN(IN)=OUT

EXP(IN)=OUT

SIN(IN)=OUT

COS(IN)=OUT

TAN(IN)=OUT

操作数及数据类型

IN: VD,ID,QD,MD,SMD,SD,LD,AC,常量,*VD,*LD,*AC

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

数据类型:实数

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

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

【例5-14】求45º正弦值。

分析:先将45º转换为弧度:(3.14159/180)*45,再求正弦值。程序如图5-20所示。

MOVR3.14159,AC1

/R180.0,AC1

*R45.0,AC1

SINAC1,AC0

图5-20例5-14题图

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论