1. Multiplication operation MUL/MULW/MULD
1. Multiplication operation MUL/MULW/MULD
1.1. Instruction description
The instruction (MUL) multiplies two 16 bit integers and produces a * * 32-bit * * result.
The MULW instruction multiplies two 16 bit integers and produces a 16 bit result.
The MULD instruction multiplies two 32-bit integers and produces a 32-bit result.
| Related registers | Description |
|---|---|
| M8170 | The result of the operation is negative. |
| M8171 | The result of the operation is 0. |
1.2. The valid operands of the instruction
1.2.1. Single word calculation to double word instruction(MUL)
| Input/Output | Data Type | operand | Description |
|---|---|---|---|
| IN1 | 16 bit integer | D/CV/TV/AI/AO/K/H/V/Z/FD, bit composite word (X/Y/M/C/T/S), local variable (LW) | Input 1 |
| IN2 | 16 bit integer | D/CV/TV/AI/AO/K/H/V/Z/FD, bit composite word (X/Y/M/C/T/S), local variable (LW) | Input 2 |
| OUT | 32-bit integer | D/CV, bit composite word (Y/M/C/T/S), local variable (LD) | output |
1.2.2. Single word instruction(MULW)
| Input/Output | Data Type | operand | Description |
|---|---|---|---|
| IN1 | 16 bit integer | D/CV/TV/AI/AO/K/H/V/Z/FD, bit composite word (X/Y/M/C/T/S), local variable (LW) | Input 1 |
| IN2 | 16 bit integer | D/CV/TV/AI/AO/K/H/V/Z/FD, bit composite word (X/Y/M/C/T/S), local variable (LW) | Input 2 |
| OUT | 16 bit integer | D/CV/TV/AO/V/Z, bit composite word (Y/M/C/T/S), local variable (LW) | output |
1.2.3. Double word instruction(MULD)
| Input/Output | Data Type | operand | Description |
|---|---|---|---|
| IN1 | 32-bit integer | D/CV/K/H/FD, bit composite word (X/Y/M/C/T/S), local variable (LD) | Input 1 |
| IN2 | 32-bit integer | D/CV/K/H/FD, bit composite word (X/Y/M/C/T/S), local variable (LD) | Input 2 |
| OUT | 32-bit integer | D/CV, bit composite word (Y/M/C/T/S), local variable (LD) | output |
1.3. Example
command table:
NETWORK 000
LD X000
MUL D0 D1 D2 // D0 × D1 = D2D3
图1 MUL