NOP {*ind}{ARPn}
6-250
NOP {*ind}{ARPn} No Operation With Optional Indirect Address Modification
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
NOP {*ind}{,ARPn} 0111 0111 LLLL LLLL X Y N+1
Operands
{*ind}
Indirect address mode (see chapter 5)
ARPn
Auxiliary register pointer (ARP0 to ARP7)
Description Modify the indirect address operand as specified and change the auxiliary
register pointer (ARP) to the given auxiliary register. If no operands are
given, then do nothing.
Flags and
Modes
None
Repeat This instruction is repeatable. If this instruction follows the RPT instruction, it
will execute N+1 times.
Example
; Copy the contents of Array1 to Array2:
; int32 Array1[N];
; int32 Array2[N];
; for(i=0; i < N; i++)
; Array2[i] = Array1[i];
; This example only works for code located in upper 64K
; of program space:
MOVL XAR2,#Array1 ; XAR2 = pointer to Array1
MOVL XAR3,#Array2 ; XAR3 = pointer to Array2
MOV @AR0,#(N−1) ; Repeat loop N times
NOP *,ARP2 ; Point to XAR2 (ARP = 2)
SETC AMODE ; Full C2xLP address mode compatible
Loop:
MOVL ACC,* ; ACC = Array1[i]
NOP *++,ARP3 ; Increment XAR2 and point to XAR3
RPT #19 ; Do nothing for 20 cycles
||NOP
MOVL *++,ACC,ARP0 ; Array2[i] = ACC, point to XAR0
XBANZ Loop,*−−,ARP2 ; Loop if AR[ARP] != 0, AR[ARP]−−,
; point to XAR2