首页 理论教育 算术运算指令在计算机中的应用

算术运算指令在计算机中的应用

时间:2023-06-27 理论教育 版权反馈
【摘要】:例7-22 用算术运算指令完成下列算式,各步结果存放在DT0~DT6中要求X1闭合时开始运算,X0闭合时各单元清零,且清零优先。同样的功能也可采用BCD码运算指令实现。图7-28 算术运算指令综合示例

算术运算指令在计算机中的应用

算术运算指令共有32条,其中二进制数(BIN)算术运算指令和BCD算术运算指令各16条,这类指令规律性很强,因此,书中仅对其规律加以总结分析,掌握规律后,结合表7-36和表7-37,不难掌握这类指令。

表7-36 BIN(二进制)数据算术运算指令及操作数

978-7-111-40642-6-Chapter08-67.jpg

(续)

978-7-111-40642-6-Chapter08-68.jpg

表7-37 BCD算术运算指令及操作数

978-7-111-40642-6-Chapter08-69.jpg

(续)

978-7-111-40642-6-Chapter08-70.jpg

1.指令分类

按照进位制可分为二进制BIN算术运算指令和BCD码算术运算指令,各为16条指令,后者在指令中增加大写字母“B”以示区别。这两类指令除码制不同外,概念及格式上是一一对应的,甚至在指令功能编号上,均是相差20。对于同样的运算,在BIN码指令中,参与运算的是16位或32位二进制数,而在BCD码指令中,参与运算的是4位或8位BCD码数据,对应的也是16位或32位二进制数。如[F20+S,D]和[F40 B+S,D],前者表示将S和D中的16位二进制(BIN)数相加,结果送到D中去,后者表示将S和D中的4位BCD码数据相加,结果送到D中去。这两条指令在功能上十分类似,仅是操作数采用的码制不同,其规律性是显而易见的。

按照参与运算的数据字长(位数)可以分为单字(16bit)和双字(32bit)指令,后者在助记符中以大写字母“D”区别,在FP1的其他指令中也是采用这种方式。如[F25-S,D]和[F26 D-S,D],前者是16位的减法运算,可表示为(D)一(S)→(D),即将D寄存器中的数减去常数S或S寄存器中的数,然后将结果存到D寄存器中;后者为32位减法运算,这时虽然只有低位寄存器被指定,操作数寄存器的高位连续的寄存器就要自动参与计算,可以表示为(D+1,D)一(S+l,S)→(D+1,D),含义是将(D+1,D)两个连续寄存器中的32位数据减去常数S或(S+1,S)两个连续寄存器中的32位数据,结果存于(D+1,D)中。

按照运算规则可分为加、减、乘、除四则运算,以及加1、减1共6种基本运算。其中,加1和减1可以看做是加、减运算的特例,执行步数为3步,而普通加、减运算执行步数最少也为5步,因此,在有些程序中适当选用加1和减1指令可起到提高扫描速度的作用。

按照参与运算的操作数的多少可分为一操作数、二操作数和三操作数。一个操作数的情况仅见于加1和减1指令,类似于递增或递减计数器的功能。二操作数的情况仅用于加、减运算,以D表示被加数或被减数,以S表示加数或减数,同时运算结果直接存于D中。三操作数则分别用于加、减、乘、除四种运算,以S1表示被加(减、乘、除)数,以S2表示加(减、乘、除)数,运算结果存于D中。

2.操作数的数据范围

1)16位二进制数:-32768~32767或H8000~H7FFF。(www.xing528.com)

2)32位二进制数:-2147483648~2147483647或H80000000~H7FFFFFFF。

3)4位BCD码:0~9999。

4)8位BCD码:0~99999999。

3.运算标志

算术运算要影响标志继电器,包括特殊内部继电器R9008、R9009和R900B。这里仅对影响情况做简单概括,详细情况需要结合具体的指令,参考手册学习掌握。

1)R9008:错误标志。当有操作错误发生时,R9008接通一个扫描周期,并把发生错误的地址存入DT9018中。

2)R9009:进位、借位或溢出标志。当运算结果溢出或由移位指令将其置1时,R9009接通一个扫描周期。

3)R900B:0结果标志。当比较指令中比较结果相同,或是算术运算结果为0时,R900B接通一个扫描周期。

4.注意事项

算术运算一般都是一次性的,而PLC采用的是扫描执行方式,因此该类指令常常和微分指令(DF)联合使用。下面举例对算术指令加以说明。

例7-22 用算术运算指令完成下列算式,各步结果存放在DT0~DT6中要求X1闭合时开始运算,X0闭合时各单元清零,且清零优先。

978-7-111-40642-6-Chapter08-71.jpg

:使用二进制(BIN)运算指令实现时,梯形图如图7-28所示。同样的功能也可采用BCD码运算指令实现。

978-7-111-40642-6-Chapter08-72.jpg

图7-28 算术运算指令综合示例

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

我要反馈