EMUL
|
Signed multiplication
|
EMUL
|
Extended MULtiply, signed
|
[Syntax]
EMUL src, dest
[Operation]
dest2:dest = dest * src;
[Function]
- | This instruction multiplies dest by src, treating both as signed values. |
- | The calculation is performed on src and dest as 32-bit operands to obtain a 64-bit result, which is placed in the register pair, dest2:dest (R(n+1):Rn). |
- | Any of the 15 general registers (Rn (n: 0 to 14)) is specifiable for dest. |
Note | The accumulator (ACC) is used to perform the function. The value of ACC after executing the instruction is undefined. |
Register Specified for dest
|
|
R0
|
|
R1
|
|
R2
|
|
R3
|
|
R4
|
|
R5
|
|
R6
|
|
R7
|
|
R8
|
|
R9
|
|
R10
|
|
R11
|
|
R12
|
|
R13
|
|
R14
|
|
[Instruction Format]
|
|
|
|
|
|
EMUL src, dest
|
|
#SIMM:8
|
Rd (Rd=R0~R14)
|
|
|
#SIMM:16
|
Rd (Rd=R0~R14)
|
|
|
#SIMM:24
|
Rd (Rd=R0~R14)
|
|
|
#IMM:32
|
Rd (Rd=R0~R14)
|
|
|
Rs
|
Rd (Rd=R0~R14)
|
|
|
[Rs].memex
|
Rd (Rd=R0~R14)
|
|
|
dsp:8[Rs].memex
|
Rd (Rd=R0~R14)
|
|
|
dsp:16[Rs]memex
|
Rd (Rd=R0~R14)
|
|
[Flag Change]
This instruction does not affect the states of flags.
[Description Example]
EMUL #10, R2
EMUL R1, R2
EMUL [R1], R2
EMUL 8[R1].W, R2