Está en la página 1de 14

ORGANIZACIN INTERNA

INTRODUCCIN AL ENSAMBLADOR

P.G.F.

Duoc UC Sede Valparaso

ORGANIZACIN de la MEMORIA Dentro del PIC16F877 se distinguen tres bloques de memoria. Memoria de programa En sus 8192 posiciones (8K) contiene el programa con las instrucciones que gobiernan la aplicacin. Es del tipo no voltil. Memoria de datos RAM Guarda las variables y datos. Consta de varios registros de 8 bits. Es voltil. Memoria EEPROM de datos Es una pequea rea de memoria de datos de lectura y escritura no voltil que permite garantizar que determinada informacin estar siempre disponible al reinicializarse el programa. Se gestiona de manera distinta a la memoria de datos RAM.

P.G.F.

Duoc UC Sede Valparaso

0000h 0001h 0002h 0003h 0004h 0005h 0006h 0007h 0008h 0009h

RESET

La memoria de programa Almacena todas las instrucciones del programa de control, que debe estar grabado de forma permanente.

INT

La informacin contenida en esta memoria se graba previamente mediante un equipo fsico denominado programador o grabador.
El PIC16F877 tiene una memoria de programa no voltil denominada ROM Flash que admite unas 1000 grabaciones. La memoria de programa est organizada en palabras de 14 bits cada una. Todas las instrucciones ocupan una posicin de memoria de programa

000Ah
000Bh 1FFCh 1FFDh 1FFEh 1FFFh P.G.F.

Duoc UC Sede Valparaso

STATUS

La memoria de datos
STATUS STATUS PORTB

STATUS

Almacena todas los datos que se manejan en un programa.


PORTB

Se distinguen dos tipos de registro: Registros de funciones especiales SFR. Son los primeros registros. Cada uno de ellos cumple un propsito especial en el control del PIC. Registros de propsito general GPR. Se pueden usar para guardar datos temporales. El PIC16F877 dispone de 368. Cuenta con cuatro bancos de memoria: Bancos 0, 1, 2 y 3. Los SFR aparecen de la direccin 00h a 1Fh del Banco 0, de 80h a 9Fh del Banco 1, de 100h a 10F en el Banco 2 y de 180h a 18Fh del Banco 3. Algunos son accesibles desde dos o ms bancos.

Los GPR ocupan 368 posiciones de memoria. Algunas posiciones de los Bancos 1 a 3 se mapean sobre el Banco 0.
Existen zonas de memoria no empleadas que devuelven 0 en caso de lectura.
P.G.F. Duoc UC Sede Valparaso

LENGUAJE ENSAMBLADOR El nico lenguaje que entienden los microcontroladores es el lenguaje mquina formado por ceros y unos del sistema binario. El lenguaje ensamblador expresa las instrucciones de una forma ms natural al hombre a la vez que muy cercana al microcontrolador, ya que cada una de sus instrucciones se corresponde con otra en cdigo mquina. El lenguaje ensamblador trabaja con nemnicos, que son grupos de caracteres alfanumricos que simbolizan las rdenes o tareas a realizar. La traduccin de los nemnicos a cdigo mquina entendible por el microcontrolador la lleva a cabo un programa ensamblador.

El programa escrito en lenguaje ensamblador se denomina cdigo fuente (*.asm). El programa ensamblador proporciona a partir de este fichero el correspondiente cdigo mquina, que suele tener la extensin *.hex.

P.G.F.

Duoc UC Sede Valparaso

El juego de instrucciones Es un juego reducido de 35 instrucciones muy simples y rpidas. La mayora de las instrucciones se ejecuta en 4 ciclos de reloj; los saltos se ejecutan en 8. Todas las instrucciones tienen la misma longitud: 14 bits. Instrucciones de CARGA
NEMNICO DESCRIPCIN FLAGS AFECTADOS

clrf
clrw movf movlw movwf
P.G.F.

f
f,d k f

00 (f)
00 (W) (f) (destino) k (W) (W) (f)
Duoc UC Sede Valparaso

Z
Z Z Ninguno Ninguno

Instrucciones de BIT
NEMNICO DESCRIPCIN FLAGS AFECTADOS

bcf bsf

f,b f,b

Pone a 0 el bit b del registro f Pone a 1 el bit b del registro f

Ninguno Ninguno

Instrucciones ARITMTICAS
NEMNICO DESCRIPCIN FLAGS AFECTADOS

addlw addwf decf incf sublw subwf


P.G.F.

k f,d f,d f,d k f,d

(W) + k (W) (W) + (f) (destino) (f) - 1 (destino) (f) + 1 (destino) K - (W) (W) (f) - (W) (destino)
Duoc UC Sede Valparaso

C DC - Z C DC - Z Z Z C DC - Z C DC - Z

Instrucciones LGICAS
NEMNICO DESCRIPCIN FLAGS AFECTADOS

andlw andwf comf

k f,d f,d

(W) AND k (W) (W) AND (f) (destino) (/f) (destino)

Z Z Z

iorlw
iorwf rlf rrf

k
f,d f,d f,d

(W) OR k (W)
(W) OR (f) (destino) Rota (f) a izquierda (destino) Rota (f) a derecha (destino)

Z
Z C C

swap
xorlw xorwf

f,d
k f,d

Intercambia nibbles (f) (destino)


(W) XOR k (W) (W) XOR (f) (destino)

Ninguno
Z Z

P.G.F.

Duoc UC Sede Valparaso

Instrucciones de SALTO
NEMNICO DESCRIPCIN FLAGS AFECTADOS

btfsc btfss incfsz goto

f,b f,b f,d k

Salta si el bit b de f es 0 Salta si el bit b de f es 1 (f) - 1 (destino) y salta si es 0 (f) + 1 (destino) y salta si es 0 Salta a la direccin k Instrucciones de manejo de SUBRUTINAS

Ninguno Ninguno Ninguno Ninguno Ninguno

decfsz f,d

NEMNICO

DESCRIPCIN

FLAGS AFECTADOS

call retfie retlw return


P.G.F.

k k

Llamada a subrutina Retorno de una interrupcin Retorno con un literal en (W) Retorno de una subrutina
Duoc UC Sede Valparaso

Ninguno Ninguno Ninguno Ninguno

Instrucciones ESPECIALES
NEMNICO DESCRIPCIN FLAGS AFECTADOS

clrwdt nop sleep

Borra Timer del Watchdog No operacin Entra en modo de bajo consumo

/TO - /PD Ninguno /TO - /PD

P.G.F.

Duoc UC Sede Valparaso

El cdigo fuente Est compuesto por una sucesin de lneas de programa. Cada lnea de programa puede estar compuesta de hasta cuatro campos o columnas separados por uno o ms espacios o tabulaciones entre s. Campo de etiquetas. Expresiones alfanumricas escogidas por el usuario para identificar una determinada instruccin del programa. Todas las etiquetas tienen asignado el valor de la posicin de memoria en la que se encuentra la instruccin a la que acompaan. Campo del cdigo de operacin. Corresponde al nemnico. Campo de operandos y datos. Contiene los operandos que precisa el nemnico utilizado. Segn la instruccin, puede haber dos, uno o ningn operando.

Campo de comentarios. Dentro de una lnea, todo lo que se encuentre a continuacin de un punto y coma (;) ser ignorado y considerado como comentario.
P.G.F. Duoc UC Sede Valparaso

El ensamblador MPASM (distribuido por Microchip) soporta los sistemas de numeracin decimal, hexadecimal, octal, binario y ASCII. Los nemnicos que tengan una constante como operando debern incluirla respetando la sintaxis que se indica a continuacin.
TIPO SINTAXIS

Decimal Hexadecimal Octal Binario ASCII Cadena

D<valor> H<valor>

d<valor> h<valor>

.<valor> 0x<valor>

<valor>H
O<valor> B<valor> A<carcter>

<valor>h
o<valor> b<valor> a<carcter> <cadena>

<carcter>

Las constantes hexadecimales que empiecen por una letra deben ir precedidas de un cero para no confundirlas con una etiqueta. Ejemplo: movlw 0F7h
P.G.F. Duoc UC Sede Valparaso

Directivas Controlan el proceso de ensamblado del programa, pero no son parte del mismo (tambin se conocen como pseudoinstrucciones).

Hay ms de 50 directivas reconocidas por MPASM. A continuacin se recogen algunas de las ms habituales
END Es la nica directiva obligatoria. Indica al ensamblador dnde debe detener el proceso. Debe colocarse en la ltima lnea del programa. <etiqueta> EQU <expresin> El valor <expresin> es asignado a <etiqueta>. Estas directivas se suelen colocar al principio del programa y habitualmente se usan para definir constantes y direcciones de memoria. [<etiqueta>] ORG <expresin> Las instrucciones del cdigo fuente que siguen a esta directiva se ensamblan a partir de la posicin indicada por <expresin>.
P.G.F. Duoc UC Sede Valparaso

__CONFIG <expresin> [& <expresin> & ... & <expresin>] Permite indicar la configuracin elegida para la grabacin del PIC. Ejemplo: __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC LIST P=16F877 Indica el tipo de microcontrolador utilizado. INCLUDE <p16F877.inc> o INCLUDE p16F877.inc Incluye en el programa un fichero donde se definen las etiquetas con las que se nombra a los diferentes registros y sus bits. Este fichero se encuentra en el directorio principal del programa ensamblador. Puede usarse esta directiva para incluir cualquier otro fichero (Ojo! El fichero de inclusin no puede terminar con una directiva END).

DT <expr1> [, <expr2>, ... , <exprN>] Genera una instruccin retlw por cada expresin que incluya la directiva. Si la expresin es del tipo cadena, se generar una instruccin retlw por cada carcter de la misma.
P.G.F. Duoc UC Sede Valparaso