Programa ejemplo:
offset equ 0Ch
;posición de memoria RAM
w equ
0 ;destino W
f
equ 1 ;destino
F
................
................
................
movf offset,w
;tomamos a W el número n utilizado como
índice
call tabla
;posición en donde se encuentra la serie de datos
;en este sitio luego del retorno de la subrutina se tiene
en W el dato leído de la tabla
................
................
................
tabla
addwf PCL,f
;se suma al PC el contenido de W obteniendo como resultado
un salto indexado
retlw
30h ;sí el contenido de W sumado
al PCL es 0 se retorna en esta posición, W=30h
retlw
31h ;sí el contenido de W sumado
al PCL es 1 se retorna en esta posición, W=31h
retlw
32h ;sí el contenido de W sumado
al PCL es 2 se retorna en esta posición, W=32h
retlw
33h ;sí el contenido de W sumado
al PCL es 3 se retorna en esta posición, W=33h
retlw
34h ;sí el contenido de W sumado
al PCL es 4 se retorna en esta posición, W=34h
retlw
35h ;sí el contenido de W sumado
al PCL es 5 se retorna en esta posición, W=35h
.
;...
.
.
Finalmente y luego de observar el ejemplo anterior, podemos anotar
que antes de hacer el llamado a la subrutina tabla, se debe cargar
en el registro de trabajo W el valor del índice y una vez se retorne
de dicha subrutina, es en este mismo registro de trabajo en donde se obtiene
el resultado de la consulta a la tabla (vemos que la sucesión de
instrucciones retlw k se encuentra en memoria de programa).