Sunteți pe pagina 1din 5

Antes de continuar es necesario definir algunos terminos que se usaran para explicar las

instrucciones:
f: cualquier registro del microcontrolador
W: registro de trabajo
b: posicion de un bit en el registro 'f'
d: destino, puede ser 'f' (d=1) o 'W' (d=0)
etiqueta: grupo de caracteres que marcan el inicio de una parte del programa
[]: opcional
: posicion de un bit dentro de un registro
Instrucciones orientadas a registros
ADDWF: Suma W y f
Suma el contenido del registro 'W' y el registro 'f'. Si "d" es 0, el resultado se almacena en el
registro W. Si 'd' es 1 el resutado se almacena en el registro 'f'.
Sintaxis: [etiqueta] ADDWF f,d

ANDWF: W AND f
Realiza la operacin lgica AND entre el registro W y el registro "f". Si "d" es 0 el resultado se
almacena en el registro W. Si "d" es 1, el resultado se almacena en el registro "f".
Sintaxis: [etiqueta] ANDWF f,d
CLRF: Borra un registro
Borra el contenido del registro 'f' y se activa el flag Z.
Sintaxis: [etiqueta] CLRF f
CLRW: Borra el registro de trabajo W
Borra el contenido del registro 'W' y se activa el flag Z. Esta instruccion no tiene operandos.
Sintaxis: [etiqueta] CLRW
COMF: Complementa el registro f
El contenido del registro 'f' se complementa. Si d=0 el resultado se almacena en el registro W. Si
d=1 el resultado se almacena en el registro 'f'.
Sintaxis: [etiqueta] COMF f,d
DECF: Decrementa f en 1
De decrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en W. Si d=1,
el resultado se almacena en 'f'.
Sintaxis: [etiqueta] DECF f,d
DECFSZ: Decrementa en 1 y salta si el resultado es 0
El contenido del registro 'f' se decrementa. Si 'd=0, el resultado se coloca en el registro W. Si d=1,
el resultado se coloca en el registro 'f'. Si el resultado es 0, se salta la siguiente instruccin y se
contina con la ejecucin.
Sintaxis: [etiqueta] DECFSZ f,d
INCF: Incrementa el registro f

Incrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en W. Si d=1, el
resultado se almacena en 'f'.
Sintaxis: [label] INCF f,d
INCFSZ: Incrementa en 1 y salta si el resultado es 0
El contenido del registro 'f' se incrementa. Si d=0, el resultado se coloca en el registro W. Si d=1, el
resultado se coloca en el registro 'f'. Si el resultado es 0, se salta la siguiente instruccin y se
contina con la ejecucin.
Sintaxis: [etiqueta] DECFSZ f,d
IORWF: W OR f
Realiza la operacin lgica OR entre el registro W y el registro 'f'. Si d=0 el resultado se almacena
en el registro W. Si d=1, el resultado se almacen en el registro 'f'.
Sintaxis: [etiqueta] IORWF f,d
MOVF: Mover el registro f
El contenido del registro 'f' se mueve al destino 'd'. Si d=0, el destino es el registro W. Si d=1, el
destino es el propio registro 'f'.
Sintaxis: [etiqueta] MOVF f,d
RLF: Rota el registro f a la izquierda
El contenido del registro 'f' se rota una posicin a la izquierda. El bit de ms peso pasa al carry y el
carry se introduce por el bit de menos peso de 'f'. Si d=0, el resultado se coloca en el registro W. Si
d=1, el resultado queda en el registro 'f'.
Sintaxis: [etiqueta] RLF f,d
RRF: Rota el registro f a la derecha
El contenido del registro 'f' se rota una posicin a la derecha. El bit de menos peso pasa al carry y
el carry se introduce por el bit de ms peso de 'f'. Si d=0, el resultado se coloca en el registro W. Si
d=1, el resultado queda en el registro 'f'.
Sintaxis: [etiqueta] RLF f,d
SUBWF: Resta f - W
Resta el contenido del registro 'f' menos el contenido del registro W. Si d=0, el resultado se
almacena en el registro W. Si d=1, el resultado se almacena en el registro 'f'.
Sintaxis: [etiqueta] SUBWF f,d
SWAPF: Intercambio de f
El nibble bajo del registro 'f' se intercambia con el nibble alto del mismo. Si d=0, el resultado se
coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.
Sintaxis: [etiqueta] SWAPF f,d
XORWF: W XOR f
Realiza la funcin lgica OR exclusiva entre el contenido del registro W y el registro 'f'. Si d=0, el

resultado se almacena en el registro W. Si d=1 el resultado se almacena en el registro 'f'.


Sintaxis: [etiqueta] XORWF f,d
NOP: No operacion
No realiza ninguna operacion, solo consume un ciclo de reloj
Sintaxis: [etiqueta] NOP
Instrucciones orientadas a bits
BCF: Borra un bit
Borra el bit 'b'del registro 'f'
Sintaxis: [etiqueta] BCF f,b
BSF: Activa un bit
Activa el bit 'b' del registro 'f'
Sintaxis: [etiqueta] BSF f,b
BTFSC: Checa un bit y salta si es 0
Si el bit "b" del registro "f" es 0, se salta una instruccin y se contina con la ejecucin.
Sintaxis: [etiqueta] BTFSC f,b
BTFSS: Checa un bit y salta si es 1
Si el bit "b" del registro "f" es 1, se salta una instruccin y se contina con la ejecucin.
Sintaxis: [etiqueta] BTFSS f,b
Instrucciones orientadas a constantes y de control
ANDLW: W AND literal
Realiza la operacin lgica AND entre el registro W y la constante "k". El resultado se almacena en
el registro W.
Sintaxis: [label] ANDWL k
CALL: Llamada a subrutina
Llamada y salto a subrutina. La direccin de retorno se guarda en el stack. La constante "k" de 8
bits forma la direccin de salto y se carga en los bits del PC. Los bits del PC se cargan con los bits
del registro "STATUS". PC se pone a 0.
Sintaxis: [etiqueta] CALL k
CLRWDT: Borra el watchdog timer
Esta instruccin borra tanto el "watchdog" como el prescaler. Los bits TO y PD del registro de
estado se ponen a "1".
Sintaxis: [label] CLRWDT
GOTO: Salto incondicional

Se trata de un salto incondicional. Los 9 bits de la constante "k" que forman la instruccin, se
cargan en los bits del PC y forman la direccin de salto. Los bits del PC se cargan con los bits del
registro de estado.
Sintaxis: [etiqueta] GOTO k
IORLW: W OR literal
Se realiza la funcin lgica OR entre el registro W y la contante "k". El resultado se almacena en el
registro W.
Sintaxis: [etiqueta] IORLW k
MOVLW: Carga un literal en W
El registro W se carga con el valor de 8 bits expresado mediante la literal "k".
Sintaxis: [etiqueta] MOVLW k
RETURN: Regresa de una subrutina
El programa regresa de la subrutina y ejecuta la instruccion que sigue a CALL
Sintaxis: [etiqueta] RETURN
RETLW: Regresa de una subrutina y carga el valor K en W
El programa regresa de la subrutina y carga el valor de 8 bits del registro k en el registro W
Sintaxis: [etiqueta] RETLW,k
RETFIE: Regresa de la rutina de servicio
Sintaxis: [etiqueta] RETFIE
SLEEP: Entra en estado de reposo
Al salir, activa el bit de estado TO y borra el PD. El WDT y el prescaler se borran.Al entrar en el
modo SLEEP, se detiene el oscilador.
Sintaxis: [etiqueta] SLEEP
XORLW: W XOR literal
Realiza la funcin lgica OR exclusiva entre el contenido del registro W y la constante "k" de 8 bits.
El resultado se almacena en el registro W.
Sintaxis: [etiqueta] XORLW k
SUBLW: Resta L - W
A una constante "k" de 8 bits se le resta el registro W. El resultado es guardado en el mismo
registro W.
Sintaxis: [etiqueta] SUBLW k
MOVWF: Mover el valor del registro W al registro f
El contenido del registro W se mueve al registro f.
Sintaxis: [etiqueta] MOVWF f

S-ar putea să vă placă și