Académique Documents
Professionnel Documents
Culture Documents
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
Operacin: (W) + (f) --> (destino)
Flags afectados: C, DC, Z
Ejemplo: ADDWF REG,1
Antes de la instruccin: W=0x03, REG=0x04
Despus de la instruccin: W=0x03, REG=0x07
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
Operacin: (W) AND (f) --> (destino)
Flags afectados: Z
Ejemplo: ANDWF REG,1
Antes de la instruccin: W=0x17, REG= 0xC2
Despus de la instruccin: W=0x17, REG= 0x02
CLRF: Borra un registro
Borra el contenido del registro 'f' y se activa el flag Z.
Sintaxis: [etiqueta] CLRF f
Flags afectados: Z
Ejemplo: CLRF REG
Antes de la instruccin: REG=0x54
Despus de la instruccin: REG=0x00, Z=1
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
Flags afectados: Z
Ejemplo: CLRW
Antes de la instruccin: W=0x54
Despus de la instruccin: W=0x00, Z=1
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
Flags afectados: Z
Ejemplo: COMF REG,0
Antes de la instruccion: REG=0x13
Despus de la instruccin: REG=0x13, W=0xEC
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
Flags afectados: Z
Ejemplo: DEC CONT, 1
Antes de la instruccin: CONT=0x01, Z=0
Despus de la instruccin: CONT=0x00, Z=1
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
Flags afectados: Ninguno
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
Flags afectados: Z
Ejemplo: INCF CONT,1
Antes de la instruccin: CONT=0xFF, Z=0
Despus de la instruccin: CONT=0x00, Z=1
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
Flags afectados: Ninguno
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
Flags afectados: Z
Ejemplo: IORWF REG,0
Antes de la instruccin: REG=0x13, W=0x91
Despus de la instruccin: REG=0x13, W=0x93
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'.
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
Flags afectados: Z
Ejemplo: XORWF REG,1
Antes de la instruccin: REG=0xAF, W=0xB5
Despus de la instruccin: REG=0x1A, W=0xB5
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
Ejemplo: BCF REG,0
Antes de la instruccin: REG=b'01101101'
Despus de la instruccin: REG=b'01101100'
BSF: Activa un bit
Activa el bit 'b' del registro 'f'
Sintaxis: [etiqueta] BSF f,b
Ejemplo: BSF REG,2
Antes de la instruccin: REG=b'01001001'
Despus de la instruccin: REG=b'01001011'
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
Flags afectados: Z