BLDD
Block Move From Data Memory to Data Memory
7-50
Execution Increment PC, then ...
(PC) → MSTACK
lk → PC
(source) → destination
For indirect, modify (current AR) and (ARP) as specified
(PC) + 1 → PC
While (repeat counter) ≠ 0:
(source) → destination
For indirect, modify (current AR) and (ARP) as specified
(PC) + 1 → PC
(repeat counter) –1 → repeat counter
(MSTACK) → PC
Status Bits None
Description The word in data memory pointed to by
source
is copied to a data-memory
space pointed at by
destination
. The word of the source and/or destination
space can be pointed at with a long-immediate value or by a data-memory ad-
dress. Note that not all source/destination combinations of pointer types are
valid.
Note:
BLDD will not work with memory-mapped registers.
RPT can be used with the BLDD instruction to move consecutive words in data
memory. The number of words to be moved is one greater than the number
contained in the repeat counter (RPTC) at the beginning of the instruction.
When the BLDD instruction is repeated, the source (destination) address spe-
cified by the long immediate constant is stored to the PC. Because the PC is
incremented by 1 during each repetition, it is possible to access a series of
source (destination) addresses. If you use indirect addressing to specify the
destination (source) address, a new destination (source) address can be ac-
cessed during each repetition. If you use the direct addressing mode, the spe-
cified destination (source) address is a constant; it will not be modified during
each repetition.
The source and destination blocks do not have to be entirely on chip or off chip.
Interrupts are inhibited during a BLDD operation used with the RPT instruction.
When used with RPT, BLDD becomes a single-cycle instruction once the RPT
pipeline is started.
Words 2