Individual Instruction Descriptions
4-134
4.14.40 MULAPL Multiply and Accumulate Result
Syntax
[label] name dest, src
[
, mod
] Clock,
clk
Word,
w
With RPT,
clk
Class
MULAPL A
n
, {
adrs
} Table 4–46 Table 4–46 1b
MULAPL A
n
[~], A
n
[~] [,
next A
] 1 1 n
R
+3 3
Execution [premodify AP if
mod
specified]
PH,PL ⇐ MR *
src
dest
⇐
dest
+ PL
PC ⇐ PC + 1
Flags Affected OF, SF, ZF, CF are set accordingly
src
is {
adrs
}: TAG bit is set accordingly
Opcode
Instructions 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MULAPL A
n
, {
adrs
}
0 1 1 0 1 1 0 A
n adrs
x
dma16
(for direct) or
offset16
(long relative) [see section 4.13]
MULAPL A
n
[~], A
n
[~], [
next A
] 1 1 1 0 0
next A
A
n
1 1 0 0 1 0 A~ ~A
Description Perform multiplication of multiply register (MR) and value of
src
. The 16 MSBs
of the 32-bit product are stored in the product high (PH) register. The 16 LSBs
of the product (contained in product low (PL) register) added to
dest
. Certain
restriction applies to the use of this instruction when interrupts are occuring in
the background. See Section 4.8 for more detail.
Syntax Description
MULAPL {
adrs
} Multiply MR by RAM word, add PL to A
n
MULAPL A
n
[~], A
n
[~] [,
next A
] Multiply MR by An[~] word, add PL to A
n
[~]
See Also MULAPLS, MULSPL, MULSPLS, MULTPL, MULTPLS
Example 4.14.40.1 MULAPL A0, *R3++
Multiply MR with the content of data memory word stored at byte location pointed by R3, add PL to
accumulator A0, and store result in accumulator A0. Increment R3 by 2.
Example 4.14.40.2 MULAPL A2, A2~, ––A
Multiply MR register to accumulator A2~, add PL to accumulator A2, and store result to accumulator
A2.