Multiply-Accumulate Unit (MAC)
MCF52110 ColdFire® Integrated Microcontroller Reference Manual, Rev. 1
Freescale Semiconductor
4-5
Preliminary
if extension word, bit [5] = 1, the MASK bit, then
if <ea> = (An)
oa = An & {0xFFFF, MASK}
if <ea> = (An)+
oa = An
An = (An + 4) & {0xFFFF, MASK}
if <ea> =-(An)
oa = (An - 4) & {0xFFFF, MASK}
An = (An - 4) & {0xFFFF, MASK}
if <ea> = (d16,An)
oa = (An + se_d16) & {0xFFFF0x, MASK}
Here,
oa
is the calculated operand address and
se_d16
is a sign-extended 16-bit displacement. For
auto-addressing modes of post-increment and pre-decrement, the updated An value calculation is also
shown.
Use of the post-increment addressing mode, {(An)+} with the MASK is suggested for circular queue
implementations.
Figure 4-3. Mask Register (MASK)
4.2.3
Accumulator Register (ACC)
The accumulator registers store 32-bits of the MAC operation result. The accumulator extension registers
form the entire 48-bit result.
Figure 4-4. Accumulator Register (ACC)
BDM: 0x805 (MASK)
Access: User read/write
BDM read/write
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
R 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
MASK
W
Reset 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Table 4-4. MASK Field Descriptions
Field
Description
31–16
Reserved, must be set.
15–0
MASK
Performs a simple AND with the operand address for MAC instructions.
BDM: 0x806 (ACC)
Access: User read/write
BDM read/write
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10
9
8
7
6
5
4
3
2
1
0
R
Accumulator
W
Reset – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –