Multiply-Accumulate Unit (MAC)
MCF52211 ColdFire® Integrated Microcontroller Reference Manual, Rev. 2
Freescale Semiconductor 4-5
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
313029282726252423222120191817161514131211109876543210
R1111111111111111 MASK
W
Reset11111111111111111111111111111111

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
313029282726252423222120191817161514131211109876543210
RAccumulator
W
Reset––––––––––––––––––––––––––––––––