Multiply and Accumulate
MAC
7-105
Assembly Language Instructions
Cycles for a Repeat (RPT) Execution of an MAC Instruction (Continued)
Operand ExternalSARAMDARAMROM
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
CC
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
CC