Professional Documents
Culture Documents
ADDWF
ANDWF
CLRF
CLRW
COMF
DECF
DECFSZ
INCF
INCFSZ
IORWF
MOVF
MOVWF
NOP
RLF
RRF
SUBWF
SWAPF
XORWF
operandos
f,d
f,d
f
--f,d
f,d
f,d
f,d
f,d
f,d
f,d
f
--f,d
f,d
f,d
f,d
f,d
BCF
BSF
BTFSC
BTFSS
f,b
f,b
f,b
f,b
ANDLW
CALL
CLRWDT
GOTO
IORLW
MOVLW
OPTION
RETLW
SLEEP
TRIS
XORLW
k
k
k
k
k
k
k
k
--f
k
ADDWF
Suma W y f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
ANDWF
W AND f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
ANDLW
W AND literal
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Ejemplo:
[label] ANDWL k
0 <= k <= 255
(W) AND (k) --> (W)
Z
Realiza la operacin lgica AND entre el registro W y la constante "k". El resultado se
almacena en el registro W.
ANDLW 0x5FAntes de la instruccin: Despus de la instruccin:
W= 0xA3 W= 0x03
BCF
Borra un bit
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
BSF
Activa un bit
Sintaxis:
Descripcin:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
BTFSC
Test de bit y salto
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
BTFSS
Test de bit y salto
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
CALL
Salto a subrutina
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
CLRF
Borra un registro
[label] CALL k
0 <= k <= 255
(PC) + 1 --> stack; k --> PC
Ninguno
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 <7:0> del PC.Los bits <10:9> del PC se
cargan con los bits <6:5> del registro "STATUS". PC <8> se pone a 0.
ORG CALL DESTINOAntes de la instruccin: Despus de la instruccin:
PC = ORG PC = DESTINO
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
[label] CLRF f
0 <= f <= 32
00f --> (f); 1 --> Z
Z
Se borra el contenido del registro "f" y el flag Z de estado se activa.
CLRF REGAntes de la instruccin: Despus de la instruccin:
CLRW
Borra el registro
W
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
[label] CLRW
Ninguno
00h --> W; 1 --> Z
Z
El registro de trabajo "W" se carga con 00h. El flag de Z se activa.
CLRWAntes de la instruccin: Despus de la instruccin:
W = 0x5A W = 0x00 Z = 1
CLRWDT
Borra el
"watchdog"
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
COMF
Complementa f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
DECF
Decremento de f
[label] CLRWDT
Ninguno
00h --> WDT; 1 --> TO; 1 --> PD;
TO, PD
Esta instruccin borra tanto el "watchdog" como el prescaler. Los bits TO y PD del registro
de estado se ponen a "1".
CLRWDT Despus de la instruccin:
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
DECFSZ
Decremento y
salto
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
GOTO
Salto
incondicional
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
INCF
Incremento de f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
[label] GOTO k
0 <= k <= 511
k --> PC --> <8:0>
Ninguno
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.
ORG GOTO DESTINOAntes de la instruccin: Despus de la instruccin:
PC = 0 PC = DESTINO
Ejemplo:
INCFSZ
Incremento de f,
si es 0 salta
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
IORLW
W OR literal
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
IORWF
OR entre W y f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
[label] IORLW k
0 <= f <= 255
(W).OR.(k) --> (W)
Z
Se realiza la funcin lgica OR entre el registro W y la contante "k". El resultado se
almacena en el registro W.
IORLW Ox35Antes de la instruccin: Despus de la instruccin:
W = 0x9A W = 0xBF
Ejemplo:
MOVF
Mover a f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
Z
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.
MOVF REG,0 Despus de la instruccin:
W = REG
MOVLW
Carga un literal en
W
Sintaxis:
label MOVLW k
Operandos:
0 <= f <= 255
Operacin:
(k) --> (W)
Flags afectados: Ninguno
Descripcin:
El registro W se carga con el valor de 8 bits expresado mediante la literal "k".
Ejemplo:
MOVLW 0x5A Despus de la instruccin:
MOVWF
Mover W a f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
label MOVWF f
0 <= f <= 31
(W) --> (dest)
Ninguno
Mueve el contenido del registro W al registro "f".
Ejemplo:
NOP
No operar
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
[label] NOP
Ninguno
No operar
Ninguno
No realiza operacin alguna. Consume un ciclo de instruccin.
NOP
OPTION
Carga reg.
OPTION
Sintaxis:
Operandos:
Operacin:
[label] OPTION
Ninguno
(W) --> OPTION
W = 0x5A
Flags afectados:
Descripcin:
Ejemplo:
RETWL
Retorno, carga W
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ninguno
El contenido del registro W se carga en el registro OPTION. Este es un registro de slo
escritura donde se configura el funcionamiento del prescaler y el TMR0.
OPTIONAntes de la instruccin: Despus de la instruccin:
[label] RETWL k
0 <= f <= 255
(k) --> (W); TOS --> PC
Ninguno
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: TABLA
RLF
Rota f a la
izquierda
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
W = 07 W = Valor de K8
RRF
Rota f a la derecha
Sintaxis:
[label] RRF f,d
Operandos:
0 <= f <= 31; d = 0 d = 1
Operacin:
Rotacin a la derecha
Flags afectados: C
El contenido del registro "f" se rota a la derecha. El bit de menos peso de "f" pasa al flag
Descripcin:
carry. El carry se coloca en el bit de ms peso de "f". Si "d" es 0, el resultado se almacena en
el registro W. Si "d" es 1, el resultado se almacena en "f".
Ejemplo:
SLEEP
Pasa a estado de
reposo
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
SUBWF
Resta f - W
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
SWAPF
Intercambio de f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
TRIS
Carga registro
TRIS
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
[label] SLEEP
Ninguno
ooh --> WDT; 0 --> WDT prescaler; 1 --> TO; 0 --> PD
TO, PD, GPWUF
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.
SLEEP
[label] TRIS f
5 <= f <= 7
(W) --> Registro TRIS "f"
Ninguno
El contenido del registro W se carga en uno de los tres registros TRIS (TRISA, TRISB,
TRISC) segn "f" valga 5, 6 7 respectivamente. Los registros TRIS se emplean para
configurar cada una de las puertas A, B C para que acten sus lneas como entrada o
salida.
Ejemplo:
XORLW
W XOR literal
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
XORWF
W XOR f
Sintaxis:
Operandos:
Operacin:
Flags afectados:
Descripcin:
Ejemplo:
[label] XORLW k
0 <= k <= 255
(W).XOR.K --> (W)
Z
Realiza la funcin lgica OR exclusiva (EOR) entre el contenido del registro W y la
constante "k" de 8 bits. El resultado se almacena en el registro W.
XORLW 0xAFAntes de la instruccin: Despus de la instruccin:
W = 0xB5 W = 0x1A