Está en la página 1de 4

Apuntes de programación de

microcontroladores

Sección 4:
Resumen de instrucciones y
directivas

Elaborado por:
Prof. Santiago Martínez Alejandro
santiagomalejandro@gmail.com

Santiago Gutiérrez Kathiam Jaret


ksantiagog1601@alumno.ipn.mx
Sección 4. Resumen de instrucciones y directivas
Directiva Descripción
END Indica el fin del programa. Es la única directiva obligatoria
EQU
Es una directiva de asignación
<label> EQU <expr>
El valor de <expr> es asignado a la etiqueta <label>.
Usualmente las asignaciones con EQU van al inicio del programa
(antes de las instrucciones).

ORG
Esta directiva indica al programa ensamblador la dirección en
memoria de programa a partir de la cual debe ensamblarse las
instrucciones del código fuente. Es decir, la dirección de memoria del
programa donde se van a almacenar esas instrucciones.

__CONFIG
Esta directiva indica la configuración elegida para el proceso de
grabación del microcontrolador.
__CONFIG _CP_OFF &_WDT_OFF &_PWRTE_ON &_XT_OSC

-No hay protección de código (_CP_OFF)


-No se habilita el Watchdog (_WDT_OFF)
-Se habilita el reset mediante Power-Up Timer (_PWRTE_ON)
-Se utiliza el oscilador por cristal de cuarzo (_XT_OSC)

LIST P=16F84A Tipo de procesador utilizado


INCLUDE Indica el fichero donde las etiquetas que nombran a los diferentes
<P16F84A.INC> registros y el valor que le corresponde a cada uno, es decir, en el
fichero P16F84A.INC se muestra cómo hay que nombrar a todos los
registros propios del microcontrolador. Este fichero se localiza en el
directorio principal del programa ensamblador.

Instrucción de Descripción
carga
clrw (clear W) El contenido del registro W se borra (se carga con b’00000000’) y
el flag Z se activa a “1”. Esta instrucción también se podría
considerar como aritmética.

El contenido del registro ‘f’ se borra (se carga con b’00000000’) y


clrf f (clear f)
el flag Z se activa a uno. Esta instrucción también se podría
considerar como aritmética.
movlw k (move El registro W se carga con el valor de los 8 bits de la constante ‘k’.
literal to k) Ningún flag del registro de estado es afectado.
El contenido del registro ‘f’ se carga en el registro destino
movf f,d (move f)
dependiendo del valor de ‘d’. Si ‘d’ =0 es el registro W, si ‘d’ =1 es
el propio registro ‘f’. El flag Z del registro STATUS queda afectado:
Z se activa a “1” si el resultado de la operación es cero.
movwf f (move W Carga el contenido del registro W al registro ‘f’. Ningún flag del
to f) registro de estado es afectado.

Instrucción de bit Descripción


bcf f,b (Bit Clear Pone a cero el bit ‘b’ del registro ‘f’
f)
bsf f,b (Bit Set f) Pone a uno el bit ‘b’ del registro ‘f’

Instrucción Descripción
“GOTO K”
goto k En casi todos los programas se usa la instrucción de salto
incondicional goto k (unconditional Branch) que produce un salto a
la dirección del programa indicada por “k”. La constante literal “k”
es la dirección de destino salto, es decir, la nueva dirección de
memoria de programa a partir de la cual comenzarán a leerse las
instrucciones después de ejecutar la instrucción goto.

Instrucción de suma Descripción


Addlw k (Add Suma el contenido del registro W con el literal o constante ‘k’.
Literal to W) Almacena el resultado en W. Si se produce acarreo el flag C se pone
“1”.
Addwf f,d (Add W Suma el contenido del registro W al contenido del registro ‘f’.
and f) Almacena el resultado en W si ‘d’=0 y en el registro ‘f’ si ‘d’=1. Si
se produce acarreo el flag C se pone a “1”.

Instrucción de Descripción
resta
sublw k Resta (en complemento a 2) el contenido de la constante ‘k’ menos el
(Subtract W contenido del registro W y almacena el resultado en W.
from Literal)
Ejemplo 1: sublw 0x03 ;03h – (W) →(W)
Antes instrucción (W)=0x01, C=¿? y Z= ¿?
Después instrucción (W)=0x02, C=1 y Z=0
Resultado positivo

Ejemplo 2: sublw 0x02 ;02h - (W)→(W)


Antes instrucción (W) =0x02, C=¿? y Z= ¿?
Después instrucción (W)=0X00, C=1 y Z=1
El resultado es cero
Subwf f, d Resta (en complemento a 2) el contenido del registro ‘f’ menos el
(Subtract W contenido del registro W. Almacena el resultado en W si ‘d’ es cero y en
from f) ‘f’ si ‘d’ es uno.

Instrucción de Descripción
incrementar y
decrementar
decf f,d El contenido del registro ‘f’ se decrementa en una unidad. Almacén el
(Decrement f) resultado en W si ‘d’=0(en cuyo caso ‘f’ no varía) y en el registro ‘f’ si
‘d’ =1
subwf f, d Resta (en complemento a 2) el contenido del registro ‘f’ menos el
(Subtract W contenido del registro W. Almacena el resultado en W si ‘d’ es cero y en
from f) ‘f’ si ‘d’ es uno. El flag Z se activa a “1” si el resultado de la operación
es cero.
Incf f,d El contenido del registro ‘f’ se incrementa en una unidad. Almacena el
(Increment f) resultado en W si ‘d’=0 (en cuyo caso ‘f’ no varía) y en el registro ‘f’ si
‘d’=1. El flag Z se activa a “1” si el resultado de la operación es cero, es
decir, si hay desbordamiento al pasar de b’11111111’ a b’00000000’

Actividad:
• Investigar y hacer un resumen de las instrucciones lógicas
• Elaborar un diagrama (mapa conceptual, mental o cuadro sinóptico) de las
instrucciones y directivas

También podría gustarte