Multiply and Accumulate
MAC
7-105
Assembly Language Instructions
Cycles for a Repeat (RPT) Execution of an MAC Instruction (Continued)
Operand
External
SARAM
DARAM
ROM
Operand 1: DARAM/
ROM
Operand 2: SARAM
n+2
n+2
n+2
n+2+2p
code
Operand 1: SARAM
Operand 2: SARAM
n+2
2n+2
†
n+2
2n+2
†
n+2
2n+2
†
n+2+2p
code
2n+2
†
Operand 1: External
Operand 2: SARAM
n+2+np
op1
n+2+np
op1
n+2+np
op1
n+2+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 both operands are in the same SARAM block
Example 1
MAC
0FF00h,02h
;(DP = 6, PM = 0, CNF = 1)
Before Instruction
After Instruction
Data Memory
Data Memory
302h
23h
302h
23h
Program Memory
Program Memory
FF00h
4h
FF00h
4h
TREG 45h
TREG
23h
PREG
458972h
PREG
08Ch
ACC
X
723EC41h
ACC
0
76975B3h
C
C
Example 2
MAC
0FF00h,*,AR5
;(PM = 0, CNF = 1)
Before Instruction
After Instruction
ARP
4
ARP
5
AR4
302h
AR4
302h
Data Memory
Data Memory
302h
23h
302h
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