90 likes | 291 Views
XXXXX. XXXXX. 乘法指令. 除法指令 DIV. 加法指令 ADD. 减法指令 SUB. 加 1 指令 INC. 减 1 指令 DEC. 乘法指令 MUL. FX2 系列中有六条算数运算指令,能实现数据的加、减、乘、除等基本运算。. 乘法指令 MUL. 功能. 将指定两个源软元件中有符数,进行二进制有符数乘法,然后将相乘的积送入指定的目标元件中。. (一)指令格式. [S1·] 、 [S2·] 分别为作为被乘数和乘数的源软件组件。. [D·] 为存放相乘积的目标组件的首地址。. 1. 其中. 2. 源操作数可取所有数据类型。. 3.
E N D
XXXXX XXXXX 乘法指令
除法指令DIV 加法指令ADD 减法指令SUB 加1指令INC 减1指令DEC 乘法指令MUL FX2系列中有六条算数运算指令,能实现数据的加、减、乘、除等基本运算。
乘法指令MUL 功能 将指定两个源软元件中有符数,进行二进制有符数乘法,然后将相乘的积送入指定的目标元件中。
(一)指令格式 [S1·]、[S2·]分别为作为被乘数和乘数的源软件组件。 [D·]为存放相乘积的目标组件的首地址。 1 其中 2 源操作数可取所有数据类型。 3 4 目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 1.指令编号及助记符: 乘法指令FNC22 MUL[S1·] [S2·] [D·]
(二)指令用法 1.MUL指令的功能是将指定的[S1·]、 [S2·]两个源软组件中的数进行二进制代数乘法运算,然后将相乘结果积送入指定的目标软组件中。 1 2 MUL指令进行的是有符数乘法,被乘数和乘数最高位是符号位,分为16位和32位操作两种情况。
例 3 如图7.44所示,乘法运算指令应用举例。 图7.44 乘法运算指令应用举例 MUL指令进行的是有符数乘法,被乘数和乘数最高位是符号位,分为16位和32位操作两种情况: 两源的乘积以32bit形式送到指定目标,低16bit在指定目标元件,高16bit在下一个元件。16位运算如图7.45: 1.16bit运算
图7.45 16位乘法运算应用举例 MUL指令进行的是有符数乘法,被乘数和乘数最高位是符号位,分为16位和32位操作两种情况: 两源的乘积以32bit形式送到指定目标,低16bit在指定目标元件,高16bit在下一个元件。16位运算如图7.45: 1.16bit运算
当为32位运算,执行条件X0由OFF→ON时, [D1,D0]*[D3,D2] →[D7,D6,D5,D4]。源操作数是32位,目标操作数是64位。当[D1,D0]=238,[D3,D2]=89时,[D7,D6,D5,D4]=4982,最高位为符号位,0为正,1为负。 1 2 在32位运算中,如用bit元件作目标,则乘积只能得到低32bit。高32bit丢失。在这种情况下应先将数据移入字元件再进行运算。若D0=8,D2=9则(D5,D4)=72 ;最高bit是符号bit(0为正,1为负)。 2.32 bit运算 图7.46 32位乘法运算应用举例
乘法指令注意事项 在32位运算中,若目标元件使用位软元件,只能得到低32位的结果,不能得到高32位的结果。这时应先向字元件传送一次后再进行计算,利用字元件作目标时,不可能同时监视64位数据内容,只能通过监控运算结果的高32位和低32位并利用下式计算4位数据内容。这种情况下,建议最好采用浮点运算。 64位结果=(高32位数据)×232+低32位数据。