Multiply and Accumulate With Data Move
MACD
7-109
Assembly Language Instructions
Cycles for a Repeat (RPT) Execution of an MACD Instruction (Continued)
Operand
External
SARAM
DARAM
ROM
Operand 1: SARAM
Operand 2: SARAM
2n
3n
‡
2n
3n
‡
2n
2n+2
†
3n
‡
3n+2
§
2n+2p
code
3n
‡
Operand 1: External
Operand 2: SARAM
2n+np
op1
2n+np
op1
2n+np
op1
2n+2+np
op1
†
2n+np
op1
+2p
code
Operand 1: DARAM/
ROM
Operand 2: External
¶
n+2+nd
op2
n+2+nd
op2
n+2+nd
op2
n+2+nd
op2
+2p
code
Operand 1: SARAM
Operand 2: External
¶
n+2+nd
op2
n+2+nd
op2
n+2+nd
op2
n+2+nd
op2
+2p
code
Operand 1: External
Operand 2: External
¶
2n+2+np
op1
+
nd
op2
2n+2+np
op1
+nd
op2
2n+2+np
op1
+nd
op2
2n+2+np
op1
+nd
op2
+
2p
code
† If operand 2 and code are in the same SARAM block
‡ If both operands are in the same SARAM block
§ If both operands and code are in the same SARAM block
¶ Data move operation is not performed when operand2 is in external data memory.
Example 1
MACD
0FF00h,08h
;(DP = 6: addresses 0300h–037Fh,
;PM = 0: no shift of product,
;CNF = 1: RAM B0 configured to
;program memory).
Before Instruction
After Instruction
Data Memory
Data Memory
308h
23h
308h
23h
Data Memory
Data Memory
309h
18h
309h
23h
Program Memory
Program Memory
FF00h
4h
FF00h
4h
TREG 45h
TREG
23h
PREG
458972h
PREG
8Ch
ACC
X
723EC41h
ACC
0
76975B3h
C
C