Holas Chicos!.
...Gracias por su atención!..pasa que tengo ciertas dudas con el manejo de tablas
..les explico:
Primero llamo a la tabla dentro de mi programa principal asi:
programa
call tabla
movwf PORTB
goto programa
y antes porsupuesto tengo la definicion de la tabla asi:
tabla
movf TMR0,0
andlw 0fh
addwf PCL,1
retlw 3fh
retlw 06h
retlw 5bh
retlw 4fh
retlw 66h
retlw 6dh
retlw 7dh
retlw 07h
retlw 7fh
retlw 67h
retlw 77h
retlw 7ch
retlw 39h
retlw 5eh
retlw 79h
retlw 71h
Como se daran cuenta el acumulador w se carga dentro de la tabla (andlw 0fh)..bueno ..como todos sabemos el PC contiene la siguiente direccion a ejecutarse pero a excepcion de un call y otros....entonces en mi caso..en el momento en que hago el call el Pc tendrá la dirección de tabla..(corrijanme porfavor si estoy mal)..luego en tabla..el PC se cargará con la dirección de tabla + 0fh....no?...ahora esta es mi duda ......
NO entiendo la logica de funcionamiento ...si en mi ejemplo siempre le sumo al PC el mismo valor (que le asigno dentro de tabla)..comparará siempre el mismo valor?...mmmm..entonces ...quiere decir que mi tabla comparará de 0f en 0f?.....ahora si tabla está en 10h y le sumo al pc 0fh entonces con el addwf PCL,1 ..el PC tendrá.. (10h +0f) ?..y en mi tabla que está arriba no existe esa posición para devolverle algo a W (solo hay hasta 15)...(como funciona?)...
Si alguien podría explicarme se lo agradecia mucho..
Gracias por su tiempo!.. espero sus respuestas!..