MOV loc16, *(0:16bit)
6-165
MOV loc16, *(0:16bit) Move Value
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
MOV loc16, *(0:16bit) 1111 0101 LLLL LLLL
CCCC CCCC CCCC CCCC
X Y N+2
Operands loc16 Addressing mode (see Chapter 5)
*(0:16bit) Immediate direct memory address, access low 64K range of data space
only (0x00000000 to 0x0000FFFF)
Description Move the content of the location specified by the constant direct memory
address “0:16bit” into the location pointed to by the “loc16” addressing
mode:
[loc16] = [0x0000:16bit];
Flags and
Modes
N If (loc16 = @AX), then the load to AX is tested for a negative condition. The
negative flag bit is set if bit 15 of AX is 1, otherwise it is cleared.
Z If (loc16 = @AX), then the load to AX is tested for a zero condition. The bit
is set if the result of the operation on the AX register generates a 0 value,
otherwise it is cleared.
Repeat This instruction is repeatable. If the operation follows a RPT instruction,
then it will be executed N+1 times. When repeated, the “(0:16bit)”
data-memory address is post-incremented by 1 during each repetition.
Only the lower 16 bits of the address are affected.
; Copy the contents of Array1 to Array2:
; int16 Array1[N]; // Located in low 64K of data space
; int16 Array2 N];
; for(i=0; i < N; i++)
; Array2[i] = Array1[i];
Example
MOVL XAR2,#Array2 ; XAR2 = pointer to Array2
RPT #(N−1) ; Repeat next instruction N times
||MOV *XAR2++,*(0:Array1) ; Array2[i] = Array1[i],
; i++