LC *XAR7
6-121
LC *XAR7
Long Indirect Call
SYNTAX OPTIONS
OPCODE
OBJMODE
RPT
CYC
LC *XAR7
0111 0110 0000 0100
X
−
4
Operands
*XAR7
indirect program-memory addressing using auxiliary register XAR7, can ac-
cess full 4Mx16 program space range (0x000000 to 0x3FFFFF)
Description
Indirect long call. The return PC value is pushed onto the software stack,
pointed to by SP register, in two 16-bit operations. Next, the destination
address stored in the XAR7 register is loaded into the PC:
temp(21:0) = PC + 1;
[SP] = temp(15:0);
SP = SP + 1;
[SP] = temp(21:16);
SP = SP + 1;
PC = XAR7(21:0);
Note:
For more efficient function calls when operating with OBJMODE = 1, use the LCR and
LRETR instructions instead of the LC and LRET instructions.
Flags and
Modes
None
Repeat
This instruction is not repeatable. If this instruction follows the RPT
instruction, it resets the repeat counter (RPTC) and executes only once.
Example
; Call to subroutines in SwitchTable selected by Switch value:
SwitchTable:
; Switch address table:
.long Switch0
; Switch0 address
.long Switch1
; Switch1 address
.
.
MOVL XAR2,#SwitchTable
; XAR2 = pointer to SwitchTable
MOVZ AR0,@Switch
; AR0 = Switch index
MOVL XAR7,*+XAR2[AR0]
; XAR7 = SwitchTable[Switch]
LC *XAR7
; Indirect call using XAR7
.
.
Switch0:
; Subroutine 0:
.
.
LRET
; Return
Switch1:
; Subroutine 1:
.
.
LRET
; Return
Summary of Contents for TMS320C28x
Page 30: ...1 12...
Page 80: ...This page intentionally left blank 2 50 This page intentionally left blank...
Page 269: ...IN loc16 PA 6 112 MOV AL 0 AL 0 UOUT IORegC AL IOspace IORegC AL 10...
Page 308: ...MAXCUL P loc32 6 151 Saturate MOVL Var64 2 ACC Store result into Var64 MOVL Var64 P...
Page 509: ...SUBL ACC P PM 6 352 SUBL ACC P PM ACC S B 11 M X 4 MOVH Y ACC 5 Store Q15 result into Y...
Page 585: ...This page intentionally left blank 7 32 This page intentionally left blank...