MMOV16 MARx, mem16
Load MAR1 with 16-bit Value
Operands
MARx
CLA auxiliary register MAR0 or MAR1
mem16
16-bit destination memory accessed using one of the available
addressing modes
Opcode
LSW: mmmm mmmm mmmm mmmm (Opcode for MMOV16 MAR0, mem16)
MSW: 0111 0110 0000 addr
LSW: mmmm mmmm mmmm mmmm (Opcode for MMOV16 MAR1, mem16)
MSW: 0111 0110 0100 addr
Description
Load MAR0 or MAR1 with the 16-bit value pointed to by mem16. Refer to the pipeline
section for important information regarding this instruction.
MAR1 = [mem16];
Flags
No flags MSTF flags are affected.
Flag
TF
ZF
NF
LUF
LVF
Modified
No
No
No
No
No
Pipeline
This is a single-cycle instruction. The load of MAR0 or MAR1 will occur in the EXE phase
of the pipeline. Any post increment of MAR0 or MAR1 using indirect addressing will occur
in the D2 phase of the pipeline. Therefore the following applies when loading the auxiliary
registers:
•
I1 and I2
The two instructions following MMOV16 will use MAR0/MAR1 before the update
occurs. Thus these two instructions will use the old value of MAR0 or MAR1.
•
I3
Loading of an auxiliary register occurs in the EXE phase while updates due to post-
increment addressing occur in the D2 phase. Thus I3 cannot use the auxiliary register
or there will be a conflict. In the case of a conflict, the update due to address-mode
post increment will win send the auxiliary register will not be updated with #_X.
•
I4
Starting with the 4th instruction MAR0 or MAR1 will be the new value loaded with
MMOV16.
; Assume MAR0 is 50 and @_X is 20
MMOV16 MAR0, @_X ; Load MAR0 with the contents of X (20)
<Instruction 1> ; I1 Will use the old value of MAR0 (50)
<Instruction 2> ; I2 Will use the old value of MAR0 (50)
<Instruction 3> ; I3 Cannot use MAR0
<Instruction 4> ; I4 Will use the new value of MAR0 (20)
<Instruction 5> ; I5
....
Control Law Accelerator (CLA)
650
TMS320x2806x Microcontrollers
SPRUH18I – JANUARY 2011 – REVISED JUNE 2022
Copyright © 2022 Texas Instruments Incorporated
Summary of Contents for TMS320 2806 Series
Page 2: ......