TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Fainx en 06 de Noviembre de 2009, 13:52:47

Título: Funcion de program counter
Publicado por: Fainx en 06 de Noviembre de 2009, 13:52:47
Saludos a todos los del foro, aqui denuevo estoy queriendo sacarme dudas, en este caso el funcionamiento del pcl. uso un pic P16F628A mi pregunta es con respecto al program counter supongamos k tengo la siguiente instruccion
PCL numero de instruccion
1        org 5
2       movlw 0x0f
3       addwf 0x0e
a lo que quiero llegar se que el program counter guarda el numero de instruccion proxima a ejecutar pero si antes de mi programa yo pongo org 5 quiere decir que para el program counter su proxima instruccion a ejecutar es la 6? o al poner org 5 solo indico que empiezo de la posicion 5 de memoria y el program counter tendra como valor instruccion 1 a su primera instruccion en el programa. Espero que se entienda.

Saludos.
Título: Re: Funcion de program counter
Publicado por: Suky en 06 de Noviembre de 2009, 14:00:23
Haber cuando vos hagas por ejemplo:

Código: ASM
  1. Org  0x00
  2.     goto Inicio
  3.  
  4.  
  5.     org  0x05
  6. Inicio
  7.     movlw   0x0f..

Al iniciarse PC comienza en 0, pero en 0x00 se indica que se debe ir a la etiqueta inicio, osea que al ejecutar goto Inicio PC se carga con 5.


Saludos!
Título: Re: Funcion de program counter
Publicado por: Fainx en 06 de Noviembre de 2009, 15:03:21
Haber cuando vos hagas por ejemplo:

Código: ASM
  1. Org  0x00
  2.     goto Inicio
  3.  
  4.  
  5.     org  0x05
  6. Inicio
  7.     movlw   0x0f..

Al iniciarse PC comienza en 0, pero en 0x00 se indica que se debe ir a la etiqueta inicio, osea que al ejecutar goto Inicio PC se carga con 5.


Saludos!

Gracias por la respuesta entiendo lo que quieres explicarme pero mi pregunta va a no declarar el org 0x00 si no que el programa empieza directamente como
org 5.

   1.   org  0x05
   2.   Inicio
   3.   movlw   0x0f..
Título: Re: Funcion de program counter
Publicado por: Suky en 06 de Noviembre de 2009, 15:35:37
Pero es lo que explique, no carga 0x06, sino 0x05.


Saludos!
Título: Re: Funcion de program counter
Publicado por: Leon Pic en 06 de Noviembre de 2009, 18:36:32
Fainx, es tal como te lo explicó Suky.
Recuerda que, ORG no es una instrucción sino una directiva para el MPASM

Si a tu ejemplo lo escribimos tal como irá al PIC, te quedará así:

Código: [Seleccionar]
0x00 goto inicio
0x01
0x02
0x03
0x04
0x05 inicio movlw 0x0f
Título: Re: Funcion de program counter
Publicado por: mtristan en 06 de Noviembre de 2009, 18:47:05
.

No se puede iniciar el programa con otra directiva que no sea ORG 0X00, porque es desde ahí desde donde el PIC comienza a leer el programa. Si empiezas tu código con ORG 0X05, dejás vacío el registro 0x00 de la memoria de programa. No vacío en realidad; alguna instrucción va a quedar almacenada ahí, y es la que el PIC ejecutará primero.