15
15 – 73
Syntax:
PM (
I4 ,
M4 ) = dreg ;
I5
M5
I6
M6
I7
M7
Permissible dregs
AX0
MX0
SI
AX1
MX1
SE
AY0
MY0
SR1
AY1
MY1
SR0
AR
MR2
MR1
MR0
Example:
PM (I6, M5) = AR;
Description:
The Program Memory Write Indirect instruction moves
the contents of the source to the program memory location specified in the
instruction word. The addressing mode is register indirect with post-
modify. For linear (i.e. non-circular) indirect addressing, the L register
corresponding to the I register used must be set to zero.
The 16 most
significant bits of the Program Memory Data bus (PMD
23-8
) are loaded
from the source register, with bit PMD
8
aligned with bit 0 of the source
register (right justification). The 8 least significant bits of the Program
Memory Data bus (PMD
7-0
) are loaded from the PX register. Whenever a
source register of length less than 16 bits is written to memory, the value
written is sign-extended to form a 16-bit value.
Status Generated:
None affected.
Instruction Format:
ALU / MAC Operation with Program Memory Write, Instruction Type 5
(see Appendix A), as shown below:
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 1 1 0 AMF 0 0 0 0 0 DREG I M
AMF specifies the ALU or MAC operation to be performed in parallel
with the Program Memory Write. In this case, AMF = 00000, indicating a
no-operation for the ALU / MAC function.
DREG selects the source Data Register. One of the 16 Data Registers is
selected according to the Register Selection Table (see Appendix A).
I specifies the indirect address pointer (I register). M specifies the modify
register (M register).
MOVE
PROGRAM MEMORY WRITE (Indirect Address)