
XCALL *AL
6-374
XCALL *AL
C2 x LP Source-Compatible Function Call
SYNTAX OPTIONS
OPCODE
OBJMODE
RPT
CYC
XCALL *AL
0101 0110 0011 0100
1
−
7
Operands
*AL
Indirect program-memory addressing using register AL, can only access
high 64K of program space range (0x3F0000 to 0x3FFFFF)
Description
Indirect call with destination address in AL. The lower 16 bits of the current
PC address are saved onto the software stack. Then, the low 16 bits of PC is
loaded with the contents of register AL and the upper 6 bits of the PC are
loaded with 0x3F:
temp(21:0) = PC + 1;
[SP] = temp(15:0);
SP = SP + 1;
C = 0x3F:AL;
Note:
T
his instruction can only transfer program control to a location located in the upper 64K
range of program space (0x3F0000 to 0x3FFFFF). To return from a call made by
XCALL, the XRETC instruction must be used.
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 function in FuncTable selected by FuncIndex value.
; This example only works for code located in upper 64K of
; program space:
FuncTable:
; Function address table:
.word FuncA
; FuncA address
.word FuncB
; FuncB address
.
.
MOVL XAR2,#FuncTable
; XAR2 = pointer to FuncTable
MOVZ AR0,@FuncIndex
; AR0 = FuncTable index
MOV AL,*+XAR2[AR0]
; AL = Table[FuncIndex]
XCALL *AL
; Indirect call using AL
.
.
FuncA:
; Function A:
.
.
XRETC UNC
; Return unconditionally
FuncB:
; Function B:
.
.
XRETC UNC
; Return unconditionally
Содержание TMS320C28x
Страница 30: ...1 12...
Страница 80: ...This page intentionally left blank 2 50 This page intentionally left blank...
Страница 269: ...IN loc16 PA 6 112 MOV AL 0 AL 0 UOUT IORegC AL IOspace IORegC AL 10...
Страница 308: ...MAXCUL P loc32 6 151 Saturate MOVL Var64 2 ACC Store result into Var64 MOVL Var64 P...
Страница 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...
Страница 585: ...This page intentionally left blank 7 32 This page intentionally left blank...