首页 历史故事算数运算指令的分析介绍,

算数运算指令的分析介绍,

【摘要】:表5-28 算数运算指令注:双精度浮点数运算指令只有Q系列通用型CPU才支持。图5-13 功能示意图BIN 16位数据的加法运算数据范围为-32768~32767,数据的正负由该数据的最高位b15来判断,为0时是正数,为1时是负数。当X3为ON时,将常数18000减去T3的当前值,结果存放在D3中。图5-14 BIN 16位数据加法程序举例2)BIN16位 除法指令的指令格式为。该指令将S1指定的32位浮点型实数与S2指定的32位浮点型实数相乘,将结果存储到D软元件中,功能示意如图5-17所示。

表5-28 算数运算指令

978-7-111-34215-1-Chapter05-62.jpg

注:双精度浮点数运算指令只有Q系列通用型CPU才支持。

1)加法、减法运算有16位及32位的运算,下面以16位数据的加法为例。

其指令格式为978-7-111-34215-1-Chapter05-63.jpg

加法运算可以将2个指定数据相加,最后结果存放在想要的目标寄存器中,功能示意如图5-13所示。

978-7-111-34215-1-Chapter05-64.jpg

图5-13 功能示意图

BIN 16位数据的加法运算数据范围为-32768~32767,数据的正负由该数据的最高位b15来判断,为0时是正数,为1时是负数。

程序举例:左边程序将T3的给定值与当前值之间的差值输出到Y40~Y53。当X3为ON时,将常数18000减去T3的当前值,结果存放在D3中。将结果以BCD码的形式输出至Y40~Y53,如图5-14所示。

978-7-111-34215-1-Chapter05-65.jpg

图5-14 BIN 16位数据加法程序举例

2)BIN16位 除法指令的指令格式为978-7-111-34215-1-Chapter05-66.jpg

将两个BIN16位的数据进行相除,最后结果放在目标软元件中,如图5-15所示。

978-7-111-34215-1-Chapter05-67.jpg

图5-15 两个BIN 16位数据相除

将S1中的BIN数据5678除以S2中的BIN数据1234,将结果的商放在D的软元件中,余数存放在D+1的软元件中。如果使用的是字软元件,那么除法运算的结果存储为32位,如果目标软元件所使用的是位软元件,那么只能存储结果的商(16位),而不保存余数,并且只存储商。BIN16位数据的除法运算数据范围为-32768~32767,数据的正负由该数据的最高位b15来判断,为0时是正数,为1时是负数。

978-7-111-34215-1-Chapter05-68.jpg

图5-16 BIN 16位除法指令程序举例

程序举例:将X08~X0F的数据乘以常数100,将结果存放在D0中;D0的数据除以常数314,最后输出至Y30~Y3F中,如图5-16所示。

3)上述列举了整数的运算,在实际中,可能涉及很多实数的运算,此时就需要使用浮点数的运算指令,下面列举了单精度的浮点数乘法运算指令E*的使用示例。

其指令格式为978-7-111-34215-1-Chapter05-69.jpg

该指令将S1指定的32位浮点型实数与S2指定的32位浮点型实数相乘,将结果存储到D软元件中,功能示意如图5-17所示。

978-7-111-34215-1-Chapter05-70.jpg

图5-17 两个32位浮点型实数相乘

程序举例:在X20为ON时,将D3和D4中的32位浮点型实数与D10和D11中的32位浮点型实数相乘,并将其结果存储到文件寄存器R0和R1中,如图5-18所示。

978-7-111-34215-1-Chapter05-71.jpg

图5-18 两个32位浮点型实数相乘程序举例

程序结果如图5-19所示。

978-7-111-34215-1-Chapter05-72.jpg