Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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".
Ejemplo:
ADDWF REG,0 Antes de la instruccin: W= 0x17 REF= 0xC2 Despus de la instruccin: W= 0xD9 REG= 0xC2
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".
Ejemplo:
ANDWF REG,1 Antes de la instruccin: W=0x17 REG= 0xC2 Despus de la instruccin: W=0x17 REG= 0x02
Realiza la operacin lgica AND entre el registro W y la constante "k". El resultado se almacena en el registro W.
Ejemplo:
0 <= f <= 31; 0 <= b <= 7; 0 --> (f < b >) Ninguno Borra el bit "b" del registro "f". BCF REG,7 Antes de la instruccin: REG = 0x0A
Descripcin: Ejemplo:
Despus de la instruccin:
REG = 0x47
Descripcin: Ejemplo:
Descripcin:
Si el bit "b" del registro "f" es 0, se salta una instruccin y se contina con la ejecucin.
Ejemplo:
BTFSC REG,1 GOTO PROCESA_X PC= Direccin (COM_) SI REG <1> = 0 PC= Direccin (TRUE) SI REG <1> = 1 PC= Direccin (FALSE)
Si el bit "b" del registro "f" es 1, se salta una instruccin y se contina con la ejecucin.
Ejemplo:
BTFSS REG,6 GOTO PROCESA_X PC= Direccin (COM_) SI REG <6> = 0 PC= Direccin (FALSE) SI REG <6> = 1 PC= Direccin (TRUE)
CALL
Salto a subrutina
CALL k
Ejemplo:
Ejemplo:
CLRF REG Antes de la instruccin: Despus de la instruccin: REG = 0x5A REG = 0x00 Z=1
Ejemplo:
Esta instruccin borra tanto el "watchdog" como el prescaler. Los bits TO y PD del registro de estado se ponen a "1".
Ejemplo:
CLRWDT Despus de la instruccin: Contador WDT = 0 Prescaler WDT = 0 Bit de estado TO = 1 Bit de estado PD = 1
COMF
Complementa f
COMF f,d
El contenido del registro "f" se complementa. Si "d" es 0 el resultado "R" se almacena en el registro W. Si "d" es 1, el resultado "R" se almacena en el registro "f".
Ejemplo: DECF Sintaxis: Formato de la instruccin Operandos: Operacin: Flags afectados: Descripcin: Decremento de f DECF f,d
Se decrementa en una unidad el contenido del registro "f". Si "d" es 0, el resultado se almacena en W. Si "d" es 1, el resultado se almacena en "f".
Ejemplo:
DEC CONT, 1 Antes de la instruccin: CONT = 0x01 Z=0 Despus de la instruccin: CONT = 0x00 Z=1
DECFSZ Sintaxis:
El contenido del registro "f" se decrementa. Si "d" es 0, el resultado "R" se coloca en el registro W. Si "d" es 1, el resultado "R" se coloca en el registro "f". Si R = 0, se salta la siguiente instruccin y se contina con la ejecucin.
Ejemplo:
COM_
PC = Direccin (COM_) REG = REG - 1 SI REG = 0 PC = Direccin CONTINUA SI REG != 0 PC = Direccin (COM_ + 1)
Se trata de un salto incondicional. Los 9 bits de la constante "k" que forman la instruccin, se cargan en los bits <8:0> del PC y forman la direccin de salto. Los bits <10:9> del PC se cargan con los bits <6:5> del registro de estado.
Ejemplo:
Incrementa en una unidad el contenido del registro "f". Si "d" es 0, el resultado se almacena en W. Si "d" es 1, el resultado se almacena en "f".
Ejemplo:
INCF CONT,1 Antes de la instruccin: CONT = 0xFF Z=0 Despus de la instruccin: CONT = 0x00 Z=1
Incrementa en una unidad el contenido del registro "f". Si "d" es 0, el resultado se almacena en W. Si "d" es 1, el resultado se almacena en "f". Si R=0, se salta la siguiente instruccin y se
Ejemplo:
COM_
CONTINUA Antes de la instruccin: Despus de la instruccin: PC = Direccin (COM_) CONT + 1 SI CNT = 0 PC = Direccin CONTINUA SI REG != 0 PC = Direccin (COM_ + 1) IORLW Sintaxis: Formato de la instruccin Operandos: Operacin: Flags afectados: Descripcin: W OR literal IORLW k
Se realiza la funcin lgica OR entre el registro W y la contante "k". El resultado se almacena en el registro W.
Ejemplo:
Realiza la operacin lgica OR 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 almacen en el registro "f".
Ejemplo:
IORWF REG,0 Antes de la instruccin: RESULTADO = 0x13 W = 0x91 Despus de la instruccin: RESULTADO = 0x13 W = 0x93 Z=0
El contenido del registro "f" se mueve al destino "d". Si "d" es 0, el destino es el registro w. Si "d" es 1, el destino es el propio registro "f". Esta posibilidad permite verificar dicho registro ya que el flag Z queda afectado.
Ejemplo:
instruccin Operandos: Operacin: Flags afectados: Descripcin: 0 <= f <= 255 (k) --> (W) Ninguno
Ejemplo:
MOVWF Sintaxis: Formato de la instruccin Operandos: Operacin: Flags afectados: Descripcin: Ejemplo:
Mover W a f MOVWF f
No operar NOP
Ninguno
Ejemplo:
El registro W se carga con los 8 bits de la constante k. El PC se carga con el contenido de la cima stack (TOS): direccin de retorno. Esta instruccin consume dos ciclos.
Ejemplo:
CALL TABLA
;Ahora W tiene el
;Fin de la tabla
Antes de la instruccin: Despus de la instruccin: W = 07 W = Valor de K8 RLF Sintaxis: Formato de la instruccin Operandos: Operacin: Flags afectados: Descripcin: Rota f a la izquierda RLF f,d
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" es 0, el resultado se coloca en el registro W. Si "d" es 1, el resultado queda en el registro "f".
Ejemplo:
RLF REG1,0 Antes de la instruccin: REG1 = 11100110 C=0 Despus de la instruccin: REG1 = 11100110 W = 11001100 C=1
RRF
Rota f a la derecha
RRF f,d
Ejemplo:
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.
Resta, por el mtodo del complemento a 2, el contenido del registro "f" menos el contenido del registro W. Si "d" es 0, el resultado se almacena en el registro W. Si "d" es 1, el resultado se almacena en el registro "f". Si el resultado es negativo, el carry se pone a 0.
Ejemplo:
SUBWF REG,1 Antes de la instruccin: REG = 1 W=2 Despus de la instruccin: REG = 0xFF W = 0xFF
Los cuatro bits de ms peso del registro "f" se intercambian con los cuatro bits de menos peso del mismo registro. Si "d" es 0, el resultado se coloca en el registro W. Si "d" es 1, el resultado queda en el registro "f".
Ejemplo:
Ejemplo:
XORWF
W XOR f
XORWF f,d
Ejemplo:
XORWF REG,1 Antes de la instruccin: REG = 0xAF W = 0xB5 Despus de la instruccin: REG = 0x1A W = 0xB5