ESTRUCTURA DEL PROGRAMA
Directiva LIST Este comando sirve para que el compilador tenga en cuenta sobre qué procesador se está trabajando. Este comando debe estar en todo proyecto, con la siguiente sintaxis. LIST P=PIC16F84A
Directiva EQU El nombre viene de la palabra "equal", (igual)". La directiva EQU permite al programador "igualar" nombres personalizados a datos o direcciones. Los nombres utilizados se refieren generalmente a direcciones de dispositivos, datos numéricos, direcciones de comienzo, direcciones fijas, posiciones de bits, etc. Un nombre es más descriptivo que una simple dirección y la tarea de programar se hará mucho más sencilla. También podemos asignar un nombre a una instrucción que repitamos varias veces a lo largo de un algoritmo, de manera que sea mucho más sencilla la programación. A estos nombre que asignamos mediante esta directiva se les denomina constantes, ya que el registro al que apuntan no variará durante el programa.
No siempre es necesario que con esta directiva se igualen posiciones de memoria a las etiquetas, ya que podemos poner nombres a datos. Podemos definir una equivalencia con el nombre de otra equivalencia ya definida y rtealizar operaciones matemáticas. Por ejemplo, podemos calcular la frecuencia del ciclo máquina a partir de la frecuencia de reloj con la finalidad de emplearla para hacer otros cálculos de la manera que se describe a continuación: PORT_B EQU PORT_A+1 PORT_C EQU PORT_A+2 FIN EQU START+100 FIN2 EQU START+200 clockrate EQU .4000000 ;frecuencia del cristal fclk EQU clockrate/4 ;frecuencia del reloj interno
Directiva ORG Esta directiva dice al ensamblador a partir de que posición de memoria de programa se situarán las siguientes instrucciones. Rutinas de comienzo, subrutinas de interrupción y otros programas deben comenzar en locaciones de memoria fijados por la estructura del microcontrolador. Recordemos que el 16F84 sólo tiene 1024 posiciones de memoria flash para código. La directiva ORG hace al compilador colocar el código que le sigue en una nueva dirección de memoria (la salida del compilador no solo coloca los códigos de operación sino también las direcciones de cada instrucción del programa). Usualmente se la utiliza para: reset, programas de servicios de interrupción, programa principal, subrutinas.