首页 理论教育 四则运算指令优化

四则运算指令优化

时间:2023-06-29 理论教育 版权反馈
【摘要】:四则运算指令表现形式及功能见表8-13。2)四则运算指令执行形式有连续和脉冲两种形式。4)四则运算指令在运算时是以代数方式进行运算的。如:16+(-8)=8;8-4=4;5×(-8)=-40;16÷(-4)=-45)四则运算指令在执行时要考虑标志位的动作和数值的关系见表8-14。图8-115 DEC指令16位运算时,-32768再减1就变为32767,注意这一点和减法指令也是不一样的。

四则运算指令优化

1.概述

四则运算指令通过四则运算实现数据的传送、变化及其他控制功能。四则运算指令表现形式及功能见表8-13。

2.指令在使用时,有以下五点共性要求

1)指令中操作数的软元件可使用情况:

①成为[S1]、[S2]的对象软元件有:KnX、KnM、KnY、KnS、T、C、D、V、Z、K、H。

表8-13 四则运算表现形式及功能简介表

978-7-111-38174-7-Chapter08-121.jpg

②成为[D]的对象软元件有:KnM、KnY、KnS、T、C、D、V[1]、Z[1]

注:乘法和除法指令中目标操作数不能用V,而Z也只能用于16位操作数。

2)四则运算指令执行形式有连续和脉冲两种形式。

3)四则运算指令执行时可执行16位和32位的数据,执行32位的操作在指令前加D。

4)四则运算指令在运算时是以代数方式进行运算的。

如:16+(-8)=8;8-4=4;5×(-8)=-40;16÷(-4)=-4

5)四则运算指令在执行时要考虑标志位的动作和数值的关系见表8-14。动作关系如图8-102所示。

表8-14 标志位的动作和数值的关系

978-7-111-38174-7-Chapter08-122.jpg

978-7-111-38174-7-Chapter08-123.jpg

图8-102 标志位的动作和数值变化关系

3.各指令使用介绍

(1)BIN加法ADD

图8-103所示为BIN加法表现形式,指定的源元件中的二进制数相加,结果送到指定的目标元件。每个数据的最高bit作为符号位(0为正,1为负)。

978-7-111-38174-7-Chapter08-124.jpg

图8-103 BIN加法表现形式

在32bit运算中,用到字元件时,被指定的字元件是低16bit元件,而其下一个元件即为高16bit元件。为了避免重复使用某些元件,建议指定操作元件时用偶数元件号。

源和目标可以用相同的元件号,若源和目标元件号相同而且采用连续执行的ADD/(D)ADD指令时,加法的结果在每个扫描周期都会改变。如果是用脉冲执行的形式则只在脉冲接通时执行,如图8-104所示。

另外:加法经常用到的还有加1指令(INC),如图8-105所示,指定[D.]的数据内容加1,图中D10的内容在每一个脉冲时加1。

978-7-111-38174-7-Chapter08-125.jpg

图8-104 加法指令脉冲执行

978-7-111-38174-7-Chapter08-126.jpg

图8-105 加1指令表现形式

图8-104所示的程序和图8-105所示的程序在加1时的效果是一样的。

【例8-18】有一台投币洗车机,用于司机清洗车辆,司机每投入1元可以使用10min,其中喷水时间为5min。

参考程序如图8-106所示,图中X0为投币检测,X1为喷水按钮,X2为手动复位按钮,Y0为喷水电磁阀。D10为喷水时间,D11为设定使用时间。

978-7-111-38174-7-Chapter08-127.jpg

图8-106 例8-18参考程序(www.xing528.com)

978-7-111-38174-7-Chapter08-128.jpg

图8-107 位的减法指令操作

(2)BIN减法SUB

图8-107中表示32位减法指令操作,图中[S1·]指定元件中的数减去[S2·]指定元件中的数,结果送到[D·]指定的目标软元件中。

另外:减法经常用到的还有减1指令(DEC),如图8-108所示,指定[D.]的数据内容加1,图中D10的内容在每一个脉冲时数据内容减1。图8-107和图8-108在减1时用法是相同且效果相等。

978-7-111-38174-7-Chapter08-129.jpg

图8-108 减1指令操作

【例8-19】编制倒计时程序,显示定时器T1的当前值。参考程序如图8-109所示。

978-7-111-38174-7-Chapter08-130.jpg

图8-109 例8-19参考程序

(3)BIN乘法MUL图8-110和图8-111分别表示16位和32位乘法指令操作,图中[S1·]指定元件中的数乘以[S2·]指定元件中的数,结果送到[D·]指定的目标中。

978-7-111-38174-7-Chapter08-131.jpg

图8-110 16位乘法指令

978-7-111-38174-7-Chapter08-132.jpg

图8-111 32位乘法指令

(4)BIN除法DIV图8-112和图8-113分别表示16位和32位除法指令操作,图中[S1·]指定元件中的数除以[S2·]指定元件中的数,结果送到[D·]指定的目标中。

当除数为负数时,商为负;当被除数为负数时,有余数时则余数为负。

978-7-111-38174-7-Chapter08-133.jpg

图8-113 32位除法指令操作

978-7-111-38174-7-Chapter08-134.jpg

图8-114 INC指令

(5)加1和减1指令

BIN加1指令(INC)用于将(D20)中的数值加1,结果仍存放在(D20)中。如图8-114所示:当X0=1时,D20中的数值加1。

同ADD指令相比,INC指令不会使标志位M8022置位,16位运算时,+32767再加1就变为-32768,32位运算时,+2147483467再加1就变为-2147483468。

BIN减1指令(DEC)用于将(D20)中的数值减1,结果仍存放在(D20)中。如图8-115所示:当X0=1时,D20中的数值加1。

978-7-111-38174-7-Chapter08-135.jpg

图8-115 DEC指令

16位运算时,-32768再减1就变为32767,注意这一点和减法指令也是不一样的。其标志M8021不动作。

在32位运算时,-2147483648再减1就变为2147483647,标志M8021也不动作。

【例8-20】控制一台三相异步电动机,要求电动机按正转5s→停止5s→反转5s→停止5s的顺序并自动循环运行,直到按按钮复位停止运行。

参考程序如图8-116所示,图中X0为保持性开关。

978-7-111-38174-7-Chapter08-136.jpg

图8-116 例8-20参考程序

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

我要反馈