该指令的助记符、指令代码、操作数、程序步如表 3 所示。 表 3 乘法指令的要素 指令名称 | 助记符 | 指令代码位数 | 操作数范围 | 程序步 | S1(.) | S2(.) | D(.) | 乘法 | MULMUL(P)
| FNC22(16/32)
| K 、 HKnX 、 KnY 、 KnM 、 KnS
T 、 C 、 D 、 V 、 Z
| KnY 、 KnM 、 KnST 、 C 、 D 、 V 、 Z
| MUL 、 MULP…7 步DMUL 、 DMULP…13 步<span lang="EN-US" style="font-size: 11pt;" span=""
|
MUL 乘法指令是将指定的源元件中的二进制数相乘,结果送到指定的目标元件中去。 MUL 乘法指令使用说明如图 3 所示。它分 16 位和 32 位两种情况。 图 3 乘法指令使用说明 当为 16 位运算,执行条件 X0 由 OFF → ON 时, [D0]x[D2] → [D5 , D4] 。源操作数是 16 位,目标操作数是 32 位。当 [D0]=8 , [D2]=9 时, [D5 , D4]=72 。最高位为符号位, 0 为正, 1 为负。 当为 32 位运算,执行条件 X0 由 OFF → ON 时, [D1 、 D0]x[D3 、 D2] → [D7 、 D6 、 D5 、D4] 。源操作数是 32 位,目标操作数是 64 位。当 [D1 、 D0]=238 , [D3 、 D2]=189 时, [D7 、 D6 、 D5 、 D4]=44982 ,最高位为符号位, 0 为正, 1 为负。 如将位组合元件用于目标操作数时,限于 K 的取值,只能得到低位 32 位的结果,不能得到高位 32 位的结果。这时,应将数据移入字元件再进行计算。 用字元件时,也不可能监视 64 位数据,只能通过监视高位 32 位和低 32 位。 V 、 Z 不能用于 [D] 目标元件。 |