tmp equ 0x70
pcLow equ 0x71
movlw .2 ;en el ejemplo intentaré saltar a la rutina_2
movwf tmp
bcf STATUS,C ;aseguro STATUS,C = 0 para rotar a la izq (multiplicar por 2)
rlf tmp,f
movf tmp,W
call tabla ;leer parte baja de dirección del elemento al cual saltar
movwf pcLow
incf tmp,W
call tabla ;leer parte alta de dirección del elemento al cual saltar
movwf PCLATH ;cargar PCLATH con parte alta de dirección a saltar
movf pcLow,W
movwf PCL ;saltar
tabla ; esta tabla se encuentra en pagina 0
addwf PCL,F
retlw LOW rutina_0 ; esta rutina se encuentra en la pagina 3 del pic 877a
retlw HIGH rutina_0 ; esta rutina se encuentra en la pagina 3 del pic 877a
retlw LOW rutina_1 ; esta rutina se encuentra en la pagina 3 del pic 877a
retlw HIGH rutina_1 ; esta rutina se encuentra en la pagina 3 del pic 877a
retlw LOW rutina_2 ; esta rutina se encuentra en la pagina 3 del pic 877a
retlw HIGH rutina_2 ; esta rutina se encuentra en la pagina 3 del pic 877a
ORG 01800h ; pagina 3
rutina_0
nop
;...
rutina_1
nop
;...
rutina_2
nop
;...