LB *XAR7
6-119
LB *XAR7 Long Indirect Branch
SYNTAX OPTIONS OPCODE OBJMODE RPT CYC
LB *XAR7 0111 0110 0010 0000 X − 4
Operands *XAR7 indirect program-memory addressing using auxiliary register XAR7, can ac-
cess full 4Mx16 program space range (0x000000 to 0x3FFFFF)
Description Long branch indirect. Load the PC with the lower 22 bits of the XAR7 register:
PC = XAR7(21:0);
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 ;
Branch 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]
LB *XAR7 ; Indirect branch using XAR7
SwitchReturn:
.
.
Switch0: ; Function A:
.
.
LB SwitchReturn ; Return: long branch
Switch1: ; Function B:
.
.
LB SwitchReturn ; Return: long branch