Mnemonic
M |
Description
Execution of this instruction results in multiplication of a 16-bit multiplicand (in core storage) by a 16-bit multiplier (in the accumulator). The 32-bit product that is developed replaces the contents of the accumulator and accumulator extension. The product is developed so that the more significant bits are in the accumulator. (The sign of the product is indicated by bit 0 in the accumulator.) The operation can be portrayed pictorially as follows:
The multiplier must be loaded into the accumulator before the multiply operation is performed. The multiplicand is addressed in the normal manner by the multiply instruction. The multiplicand is unchanged in core storage as a result of the operation.
There are no addressing exceptions for the multiply instruction; all forms of addressing that are described under "Effective-Address Generation" apply to the M instruction.
The largest product that can be developed is 230. This product results from multiplying the largest 16-bit negative number (-215) by itself.
Indicators: The carry and overflow indicators are not affected during the M operation.
Examples
Note: There is only one multiply instruction. No separate multiply instruction exists for double precision operands.
Multiply
Assembler Language Coding | Hexadecimal Value | Description of Instruction | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Label | Operation | F | T | ||||||||
|
|
32 | 33 | 35..40.. | |||||||
M | DISP | A0XX | Multiply contents of CSL at EA (I+DISP) by A | ||||||||
M | 1 | DISP | A1XX | Multiply contents of CSL at EA (XR1+DISP) by A | |||||||
M | 2 | DISP | A2XX | Multiply contents of CSL at EA (XR2+DISP) by A | |||||||
M | 3 | DISP | A3XX | Multiply contents of CSL at EA (XR3+DISP) by A | |||||||
M | L | ADDR | A400XXXX | Multiply contents of CSL at EA (Addr) by A | |||||||
M | L | 1 | ADDR | A500XXXX | Multiply contents of CSL at EA (Addr+XR1) by A | ||||||
M | L | 2 | ADDR | A600XXXX | Multiply contents of CSL at EA (Addr+XR2) by A | ||||||
M | L | 3 | ADDR | A700XXXX | Multiply contents of CSL at EA (Addr+XR3) by A | ||||||
M | I | ADDR | A480XXXX | Multiply contents of CSL at EA (V in CSL at Addr) by A | |||||||
M | I | 1 | ADDR | A580XXXX | Multiply contents of CSL at EA (V in CSL at "Addr+XR1") by A | ||||||
M | I | 2 | ADDR | A680XXXX | Multiply contents of CSL at EA (V in CSL at "Addr+XR2") by A | ||||||
M | I | 3 | ADDR | A780XXXX | Multiply contents of CSL at EA (V in CSL at "Addr+XR3") by A |
But wait, there's MORE...