PREAD loc16,*XAR7
PREAD loc16,*XAR7
SYNTAX OPTIONS
PREAD loc16,*XAR7
Operands
loc16
*XAR7
Description
Flags and
N
Modes
Z
Repeat
Example
;
Copy the contents of Array1 to Array2:
; int16 Array1[N]
;
; int16 Array [N]
;
; for(i=0; i N; i++)
; Array2[i] = Array1[i];
MOVL
6-282
0010 0100 LLLL LLLL
Addressing mode (see Chapter 5)
Indirect program−memory addressing using auxiliary register XAR7, can
access full 4Mx16 program space range (0x000000 to 0x3FFFFF)
Load the data memory−location pointed to by the "loc16" addressing mode
with the 16-bit content of the program−memory location pointed to by
"*XAR7":
[loc16] = Prog[*XAR7];
On the C28x devices, memory blocks are mapped to both program and data
space (unified memory), hence the "*XAR7" addressing mode can be used
to access data space variables that fall within the program space address
range.
With some addressing mode combinations, you can get conflicting
references. In such cases, the C28x will give the "loc16/loc32" field priority
on changes to XAR7. For example:
PREAD
*−−XAR7,*XAR7
PREAD
*XAR7++,*XAR7
If (loc16 = @AX) and bit 15 of AX is 1, then N is set; otherwise N is cleared.
If (loc16 = @AX) and the value of AX is zero, then Z is set; otherwise Z is
cleared.
This instruction is repeatable. If the operation follows a RPT instruction, then
it will be executed N+1 times. When repeated, the "*XAR7"
program−memory address is copied to an internal shadow register and the
address is post−incremented by 1 during each repetition.
// Located in program space
// Located in data space
XAR7,#Array1
Read From Program Memory
OPCODE
OBJMODE
; *−−XAR7 given priority
; *XAR7++ given priority
; XAR7 = pointer to Array1
RPT
CYC
X
Y
N+2
Need help?
Do you have a question about the TMS320C28x and is the answer not in the manual?