XBANZ pma,*ind{,ARPn}
XBANZ pma,*ind{,ARPn}
SYNTAX OPTIONS
XBANZ pma,*
XBANZ pma,*++
XBANZ pma,*−−
XBANZ pma,*0++
XBANZ pma,*0−−
XBANZ pma,*,ARPn
XBANZ pma,*++,ARPn
XBANZ pma,*−−,ARPn
XBANZ pma,*0++,ARPn
XBANZ pma,*0−−,ARPn
Operands
pma
ARPn
Description
6-372
C2 x LP Source-Compatible Branch If ARn Is Not Zero
0101 0110 0000 1100
CCCC CCCC CCCC CCCC
0101 0110 0000 1010
CCCC CCCC CCCC CCCC
0101 0110 0000 1011
CCCC CCCC CCCC CCCC
0101 0110 0000 1110
CCCC CCCC CCCC CCCC
0101 0110 0000 1111
CCCC CCCC CCCC CCCC
0011 1110 0011 0nnn
CCCC CCCC CCCC CCCC
0011 1110 0011 1nnn
CCCC CCCC CCCC CCCC
0011 1110 0100 0nnn
CCCC CCCC CCCC CCCC
0011 1110 0100 1nnn
CCCC CCCC CCCC CCCC
0011 1110 0101 0nnn
CCCC CCCC CCCC CCCC
16-bit immediate program-memory address,
can only access high 64K of program space range (0x3F0000 to 0x3FFFFF)
3-bit auxiliary register pointer (ARP0 to ARP7)
If the lower 16 bits of the auxiliary register pointed to by the current auxiliary
register pointer (ARP) is not equal to 0, then a branch is taken by loading the
lower 16 bits of the PC with the 16-bit immediate "pma" value and forcing the
upper 6 bits of the PC to 0x3F. Then, the current auxiliary register, pointed to
by the ARP, is modified as specified by the indirect mode. Then,, if indicated,
the ARP pointer value is changed to point a new auxiliary register:
if( AR[ARP] != 0 )
PC = 0x3F:pma
if(*++
indirect mode) XAR[ARP] = XAR[ARP] + 1;
if(*−−
indirect mode) XAR[ARP] = XAR[ARP] – 1;
if(*0++ indirect mode) XAR[ARP] = XAR[ARP] + AR0;
if(*0−− indirect mode) XAR[ARP] = XAR[ARP] − AR0;
if(ARPn specified) ARPn = n;
Note:
This instruction can only transfer program control to a location located in the upper 64K
range of program space (0x3F0000 to 0x3FFFFF). The cycle times for this operation
are:
If branch is taken, then the instruction takes 4 cycles
If branch is not taken, then the instruction takes 2 cycles
OPCODE
OBJMODE
RPT
CYC
1
−
4/2
1
−
4/2
1
−
4/2
1
−
4/2
1
−
4/2
1
−
4/2
1
−
4/2
1
−
4/2
1
−
4/2
1
−
4/2
Need help?
Do you have a question about the TMS320C28x and is the answer not in the manual?