XB pma,COND
6-371
Example
; Branch to subroutines in SwitchTable selected by Switch value.
; This example only works for code located in upper 64K of
; program space:
SwitchTable: ; Switch address table:
.word Switch0 ; Switch0 address
.word Switch1 ; Switch1 address
.
.
MOVL XAR2,#SwitchTable ; XAR2 = pointer to SwitchTable
MOVZ AR0,@Switch ; AR0 = Switch index
MOV AL,*+XAR2[AR0] ; AL = SwitchTable[Switch]
XB *AL ; Indirect branch using AL
SwitchReturn:
.
Switch0: ; Subroutine 0:
.
.
XB SwitchReturn,UNC ; Return: branch
Switch1: ; Subroutine 1:
.
.
XB SwitchReturn,UNC ; Return: branch