EasyManua.ls Logo

Texas Instruments TMS320C28x

Texas Instruments TMS320C28x
695 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Indirect Addressing Modes
5-19C28x Addressing Modes
AMODE ”loc16/loc32” Syntax Description
1 *BR0−−,ARPn 32bitDataAddr(31:0) = XAR(ARP)
XAR(ARP)(15:0) = AR(ARP) rbsub AR0
XAR(ARP)(31:16) = unchanged
ARP = n
Note: The lower 16-bits of XAR0 are reverse borrow subtracted (rbsub) from the
lower 16-bits of the selected register. Upper 16-bits of XAR0 ignored. Up-
per 16-bits of the selected register unchanged by the operation.
Example(s):
; Transfer contents of Array1 to Array2 in bit reverse order:
MOVL XAR2,#Array1+(N−1)*2 ; Load XAR2 with end address of Array1
MOVL XAR3,#Array2+(N−1)*2 ; Load XAR3 with end address of Array2
MOV @AR0,#N ; Load AR0 with size of array,
; N must be a multiple of 2 (2,4,8,16,...)
MOV @AR1,#N−1 ; Load AR1 with loop count N
NOP *,ARP2 ; Set ARP pointer to point to XAR2
SETC AMODE ; Make sure AMODE = 1
.lp_amode ; Tell assembler that AMODE = 1
Loop:
MOVL ACC,*−−,ARP3 ; Load ACC with location pointed to by
; XAR2, post−decrement XAR2, set ARP
; pointer to point to XAR3
MOVL *BR0−−,ACC,ARP1 ; Store ACC into location pointed to by
; XAR3, post−decrement XAR3 with AR0
; reverse borrow subtract, set ARP pointer
; to point to XAR1
XBANZ Loop,*−−,ARP2 ; Loop until AR1 == 0, post−decrement AR1,
; set ARP pointer to point to XAR2

Table of Contents

Related product manuals