| 
 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