首页 理论教育 四则运算指令的使用方法详解

四则运算指令的使用方法详解

时间:2023-06-26 理论教育 版权反馈
【摘要】:四则运算指令见表6-7。表6-7 四则运算指令1.加法指令加法指令ADD、ADD指令的编号为FNC20。3)加法指令操作时影响3个常用标志,即M8020零标志、M8021借位标志、M8022进位标志。2)当执行条件满足时,[S1.]到[S2.]的结果存入[D.]中,运算为代数运算。2)16位运算占7个程序步,32位运算占13个程序步。4)在DEC运算时,16位运算-32768减1变为+32767,且标志不置位;32位运算由-2147483648减1变为=2147483647,标志也不置位。2)NEG指令只有目标操作数,其可取Kn

四则运算指令的使用方法详解

四则运算指令(FNC20~FNC29)见表6-7。

表6-7 四则运算指令

978-7-111-40557-3-Chapter06-50.jpg

1.加法指令

加法指令ADD、(D)ADD(P)指令的编号为FNC20。加法指令是将指定的源操作软元件[S1.]、[S2.]中的二进制数相加,结果送到指定的目标操作软元件[D.]中。加法指令格式如图6-40所示。

978-7-111-40557-3-Chapter06-51.jpg

图6-40 加法指令

指令说明:

1)操作软元件:[S]K、H、KnX、KnY、KnM、KnS、T、C、D、V、Z

[D]KnY、KnM、KnS、T、C、D、V、Z

2)当执行条件满足时,[S1.]+[S2.]的结果存入[D.]中,运算为代数运算。

3)加法指令操作时影响3个常用标志,即M8020零标志、M8021借位标志、M8022进位标志。运算结果为零则M8020置1,超过32767时进位标志M8022置1,小于-32767时借位标志M8021置1(以上都为16位时)。

【例6-17】 程序举例如图6-41所示。

978-7-111-40557-3-Chapter06-52.jpg

图6-41 加法指令应用

2.减法指令

减法指令SUB、(D)SUB(P)指令的编号为FNC21,它将[S1.]指定元件中的内容以二进制形式减去[S2.]指定元件的内容,其结果存入由[D.]指定的元件中。减法指令格式如图6-42所示。

978-7-111-40557-3-Chapter06-53.jpg

图6-42 减法指令

指令说明:

1)操作软元件也和加法指令一样。

2)当执行条件满足时,[S1.]到[S2.]的结果存入[D.]中,运算为代数运算。

3)各种标志的动作和加法指令一样。

使用加法和减法指令时应该注意:

1)操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V、Z。

2)16位运算占7个程序步,32位运算占13个程序步。

3)数据为有符号二进制数,最高位为符号位(0为正,1为负)。

4)加法指令有3个标志:零标志(M8020)、借位标志(M8021)和进位标志(M8022)。当运算结果超过32767(16位运算)或2147483647(32位运算)时,进位标志置1;当运算结果小于-32767(16位运算)或-2147483647(32位运算)时,借位标志置1。

【例6-18】 程序举例如图6-43所示。

978-7-111-40557-3-Chapter06-54.jpg

图6-43 减法指令应用

3.乘法指令

乘法指令MUL、(D)MUL(P)指令的编号为FNC22,数据均为有符号数。乘法指令将指定的源操作软元件[S1.]、[S2.]的二进制数相乘,结果送到指定的目标操作软元件[D.]中。乘法指令格式如图6-44所示。

指令说明:

1)操作软元件同减法指令一样。2)[S1.]×[S2.]存入[D.]中,即[D0.]×[D2.]结果存入[D5.][D4.]中。3)最高位为符号位,0正1负。

【例6-19】 程序举例如图6-45所示。

978-7-111-40557-3-Chapter06-55.jpg

图6-44 乘法指令

978-7-111-40557-3-Chapter06-56.jpg

图6-45 乘法指令应用

4.除法指令(www.xing528.com)

除法指令DIV、(D)DIV(P)指令的编号为FNC23,其功能是将[S1.]指定为被除数,[S2.]指定为除数,将除得的结果送到[D.]指定的目标元件中,余数送到[D.]的下一个元件中。除法指令格式如图6-46所示。

使用乘法和除法指令时应注意:

1)源操作数可取所有数据类型,目标操作数可取KnY、KnM、KnS、T、C、D、V、Z,要注意Z只有16位乘法时能用,32位时不可用。

978-7-111-40557-3-Chapter06-57.jpg

图6-46 除法指令

2)16位运算占7个程序步,32位运算占13个程序步。

3)32位乘法运算中,如用位元件作目标,则只能得到乘积的低32位,高32位将丢失,这种情况下应先将数据移入字元件再运算;除法运算中将位元件指定为[D.]则无法得到余数,除数为0时运算错误

4)积、商和余数的最高位为符号位。

【例6-20】 程序举例如图6-47所示。

5.递增指令/递减指令

递增指令INC、(D)INC(P)的编号为FNC24,递减指令DEC(D)、DEC(P)的编号为FNC25。INC和DEC指令分别当条件满足时将指定元件的内容加1或减1,功能是将目标操作软元件[D.]中的结果加1或目标操作软元件[D.]中的结果减1。递增和递减指令格式如图6-48所示。

指令说明:

1)若用连续指令时,每个扫描周期都执行。

2)脉冲执行型只在有脉冲信号时执行一次。

使用递增和递减指令时应注意:

1)指令的操作数可为KnY、KnM、KnS、T、C、D、V、Z。

2)当进行16位操作时为3个程序步,32位操作时为5个程序步。

3)在INC运算时,如数据为16位,则由+32767再加1变为-32768,但标志不置位;同样,32位运算由+2147483647再加1就变为-2147483648时,标志也不置位。

4)在DEC运算时,16位运算-32768减1变为+32767,且标志不置位;32位运算由-2147483648减1变为=2147483647,标志也不置位。

【例6-21】 程序举例如图6-49和图6-50所示。

X000每置ON一次,D指定软元件的内容就加1。在连续执行型指令中,每个扫描周期都将执行加1运算,如图6-49所示。

X001每置ON一次,D指定软元件的内容就减1。在连续执行型指令中,每个扫描周期都将执行减1运算,如图6-50所示。

978-7-111-40557-3-Chapter06-58.jpg

图6-47 除法指令应用

978-7-111-40557-3-Chapter06-59.jpg

图6-48 递增和递减指令

978-7-111-40557-3-Chapter06-60.jpg

图6-49 加1指令应用

978-7-111-40557-3-Chapter06-61.jpg

图6-50 减1指令应用

6.逻辑辑运算类指令

1)逻辑与指令WAND(D)、WAND(P)指令的编号为FNC26,它将两个源操作数按位进行与操作,结果送指定元件。

2)逻辑或指令WOR、(D)WOR(P)指令的编号为FNC27,它对2个源操作数按位进行或运算,结果送指定元件,如(D10)∨(D12)→(D14)。

3)逻辑异或指令WXOR、(D)WXOR(P)指令的编号为FNC28,它对源操作数位进行逻辑异或运算。

4)求补指令NEG、(D)NEG(P)指令的编号为FNC29,其功能是将[D.]指定的元件内容的各位先取反再加1,将其结果再存入原来的元件中。

使用逻辑运算指令时应该注意:

1)WAND、WOR和WXOR指令的[S1.]和[S2.]均可取所有的数据类型,而目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。

2)NEG指令只有目标操作数,其可取KnY、KnM、KnS、T、C、D、V和Z。

3)WAND、WOR、WXOR指令16位运算占7个程序步,32位为13个程序步,而NEG分别占3步和5步。

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

我要反馈