Autor Tema: Como saltar a diferentes paginas con tablas usando el goto  (Leído 1975 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado proteus7

  • PIC10
  • *
  • Mensajes: 11
Como saltar a diferentes paginas con tablas usando el goto
« en: 29 de Diciembre de 2013, 19:26:42 »
hola  necesito  su ayuda para lo siguiente:

tengo una tabla que se encuentra en la pagina cero y por medio de esta quiero ir ala pagina 3  con la instruccion goto que esta anidada en "tabla" ya bus que en el foro pero no encuentro algo que se paresca a lo que yo quiero hacer alguien sabe como hacerlo?

;====================================================
aqui es donde quiero saber como le hago para que vaya directamente ala pagina 3 donde se encuentra la rutina_0
  
tabla                              ; esta tabla se encuentra en pagina 0
    addwf      pcl,f
    goto        rutina_0       ; esta rutina se encuentra en la pagina 3 del pic 877a
    goto        rutina_1       ; esta rutina se encuentra en la pagina 3 del pic 877a      
    goto        rutina_2       ; esta rutina se encuentra en la pagina 3 del pic 877a
  
    ORG        01800h       ; pagina 3
rutina_0

;=======================================================
Lo he echo de esta forma y asi,  si funciona, pero lo que quiero es hacer que con la tabla
vaya directo ala pagina 3 .


tabla                              ; esta tabla se encuentra en pagina 0
    addwf      pcl,f
    goto        rutina_0       ; esta rutina se encuentra en la pagina 0 del pic 877a
    goto        rutina_1       ; esta rutina se encuentra en la pagina 0 del pic 877a      
    goto        rutina_2       ; esta rutina se encuentra en la pagina 0 del pic 877a


rutina_0
    bsf          pclath,3       ; carga pagina 3
    bsf          pclath,4
    goto       Rutina_cero   ; ir apagina 3 donde se encuentra la rutina_cero

    ORG      01800h          ; pagina 3

Rutina_cero
    
« Última modificación: 29 de Diciembre de 2013, 23:20:14 por proteus7 »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Como saltar a diferentes paginas con tablas usando el goto
« Respuesta #1 en: 30 de Diciembre de 2013, 07:32:37 »
Tienes unas directivas del MPLAB "lgoto" y "lcall" creo recordar, mira hace ya algun tiempo me paso esto mismo, ya no recuerdo muy bien como era porque no lo volvi a usar, pero enconcre el post que puse en aquella ocasion:

http://www.todopic.com.ar/foros/index.php?topic=37693.0

Tambien puedes setear los bits 3 y 4 del PCLATCH antes de llamar a la tabla.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Como saltar a diferentes paginas con tablas usando el goto
« Respuesta #2 en: 30 de Diciembre de 2013, 16:31:58 »
Hola, esto se ha tratado varias veces en el foro.

Una forma que se me ocurre para tu caso sería hacerlo así:

Código: ASM
  1. tmp     equ     0x70
  2. pcLow   equ     0x71
  3.  
  4.         movlw   .2              ;en el ejemplo intentaré saltar a la rutina_2
  5.         movwf   tmp
  6.         bcf     STATUS,C        ;aseguro STATUS,C = 0 para rotar a la izq (multiplicar por 2)
  7.         rlf     tmp,f
  8.         movf    tmp,W
  9.         call    tabla           ;leer parte baja de dirección del elemento al cual saltar
  10.         movwf   pcLow
  11.         incf    tmp,W
  12.         call    tabla           ;leer parte alta de dirección del elemento al cual saltar
  13.         movwf   PCLATH          ;cargar PCLATH con parte alta de dirección a saltar
  14.         movf    pcLow,W
  15.         movwf   PCL             ;saltar
  16.  
  17. tabla                              ; esta tabla se encuentra en pagina 0
  18.     addwf     PCL,F
  19.     retlw      LOW  rutina_0       ; esta rutina se encuentra en la pagina 3 del pic 877a
  20.     retlw      HIGH rutina_0       ; esta rutina se encuentra en la pagina 3 del pic 877a
  21.     retlw      LOW  rutina_1       ; esta rutina se encuentra en la pagina 3 del pic 877a
  22.     retlw      HIGH rutina_1       ; esta rutina se encuentra en la pagina 3 del pic 877a
  23.     retlw      LOW  rutina_2       ; esta rutina se encuentra en la pagina 3 del pic 877a
  24.     retlw      HIGH rutina_2       ; esta rutina se encuentra en la pagina 3 del pic 877a
  25.  
  26.     ORG        01800h       ; pagina 3
  27. rutina_0
  28.         nop
  29.         ;...
  30.  
  31. rutina_1
  32.         nop
  33.         ;...
  34.  
  35. rutina_2
  36.         nop
  37.         ;...
« Última modificación: 30 de Diciembre de 2013, 16:34:00 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado proteus7

  • PIC10
  • *
  • Mensajes: 11
Re: Como saltar a diferentes paginas con tablas usando el goto
« Respuesta #3 en: 06 de Enero de 2014, 22:04:33 »
gracias brunof y tapi8 por responder,   lo que estoy haciendo es leer  los codigos ascii probenientes del  puerto rs232 del pc , al recibirlos los decodifico por medio de la tabla y dependiendo del caracter que reciba  manda ala rutina correspondiente  para escribir el caracter en un lcd 2x16  pero estas rutinas deben estar en la pagina 3.

voy analizar bien la rutina que enviaste brunof haber que se puede hacer

saludos :lol: