整数加法(ADD-I)和减法(SUB-I)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16位的结果输出到OUT。
双整数加法(ADD-D)和减法(SUB-D)指令是:使能输入有效时,将两个32位符号整数相加或相减,并产生一个32位结果输出到OUT。
整数与双整数加减法指令格式如表1所示。
表1 整数与双整数加减法指令格式
LAD |
|
|
|
|
STL |
MOVW IN1,OUT +I IN2,0UT |
MOVW IN1,OUT -I IN2,0UT |
MOVD IN1,OUT +D IN2,0UT |
MOVD IN1,OUT +D IN2,0UT |
功能 |
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,则语句表指令为:+I IN2,OUT;如指定IN2=OUT,则语句表指令为:+I IN1,OUT。在整数减法的梯形图指令中,可以指定IN1=OUT,则语句表指令为:-I IN2,OUT。这个原则适用于所有的算术运算指令,且乘法和加法对应,减法和除法对应。
(2)整数与双整数加减法指令影响算术标志位SM1.0(零标志位),SM1.1(溢出标志位)和SM1.2(负数标志位)。