RLF
Rota f a la izquierda
RRF
Rota f a la derecha
SLEEP Modo bajo consumo
Sintaxis:
[label] RLF f,d
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127
Operación: Rotación a la izquierda
Flags afectados: C
Código OP:
00 1101 dfff ffff
Sintaxis:
[label] RRF f,d
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127
Operación: Rotación a la derecha
Flags afectados: C
Código OP:
00 1100 dfff ffff
Descripción: El contenido de f se
rota a la izquierda. El bit de menos
peso de f pasa al carry (C), y el carry
se coloca en el de mayor peso. Si d es
0, el resultado se almacena en W, si d
es 1 se almacena en f.
Descripción: El contenido de f se
rota a la derecha. El bit de menos
peso de f pasa al carry (C), y el carry
se coloca en el de mayor peso. Si d es
0, el resultado se almacena en W, si d
es 1 se almacena en f.
Descripción: El bit de energía
pone a 0, y a 1 el de descanso.
WDT y su preescaler se borran.
micro para el oscilador, llendo
modo “durmiente”.
Ejemplo:
Ejemplo:
Ejemplo: :
RRF REG,0
Antes: REG = 1110 0110, C = 0
Después: REG = 1110 0110,
W = 1100 1100, C = 1
RRF REG,0
[label] SLEEP
Sintaxis:
Operandos: Ninguno
Operación: 0x00⇒WDT, 1 ⇒ / TO
0 ⇒ WDT Preescaler, 0 ⇒ / PD
Flags afectados: / PD, / TO
Código OP: 00 0000 0110 0011
Antes: REG = 1110 0110, C = 1
Después: REG = 1110 0110,
W = 01110 0011, C = 0
SLEEP
Preescales WDT = 0,
/TO = 1, /PD = 1
SUBLW Resta Literal - W
SUBWF
Sintaxis:
[label] SUBLW k
Operandos: 0 ≤ k ≤ 255
Operación: ( k ) - (W) ⇒ (W)
Flags afectados: Z, C, DC
Código OP:
11 110x kkkk kkkk
Descripción: Mediante el método del
complemento a dos el contenido de
W es restado al literal. El resultado se
almacena en W.
Sintaxis:
[label] SUBWF f,d
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127
Operación:
( f ) – (W )⇒ (dest)
Flags afectados: C, DC, Z
Código OP:
00 0010 dfff ffff
Descripción: Mediante el método del
complemento a dos el contenido de
W es restado al de f. . Si d es 0, el
resultado se almacena en W, si d es 1
se almacena en f.
Sintaxis: [label] SWAPF f,d
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127
Operación: : (f <3: 0>)⇔ (f <7:4>)
Flags afectados: Ninguno
Código OP: 00 1110 dfff ffff
Ejemplos:
Ejemplo: :
Antes:W=1,C=?. Después: W=1, C=1
Antes:W=2,C=?. Después: W=0, C=1
Antes:W=3,C=?.Después:W=FF,C=0
(El resultado es negativo)
Ejemplos:
SUBWF REG,1
Antes: REG = 0x03, W = 0x02, C = ?
Después:REG=0x01, W = 0x4F, C=1
Antes: REG = 0x02, W = 0x02, C = ?
Después:REG=0x00, W =0x02, C= 1
Antes: REG= 0x01, W= 0x02, C= ?
Después:REG=0xFF, W=0x02, C= 0
(Resultado negativo)
XORLW
XORWF
SUBLW 0x02
W OR literal
Resta f – W
se
El
El
al
Sintaxis:
[label] XORWF f,d
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127
Opera ción: (W) XOR (f) ⇒ (dest)
Flags afectados: Z
Código OP: 00 0110 dfff ffff
Descripción: Se realiza la operación
lógica XOR entre el contenido del
registro W y k, guardando el
resultado en W.
Descripción: Realiza la operación
lógica XOR entre los registros W y f.
Si d es 0, el resultado se almacena en
W, si d es 1 se almacena en f.
Ejemplo: :
Ejemplo: :
Antes: W = 0xB5
Después: W = 0x1A
Intercambio de f
Descripción: Los 4 bits de más peso
y los 4 de menos son intercambiados.
Si d es 0, el resultado se almacena en
W, si d es 1 se almacena en f.
SWAPF REG,0
Antes: REG = 0xA5
Después: REG = 0xA5, W = 0x5A
W AND F
Sintaxis: [label] XORLW k
Operandos: 0 ≤ k ≤ 255
Operación: : (W) XOR (k)⇒ (W)
Flags afectados: Z
Código OP: 11 1010 kkkk kkkk
XORLW 0xAF
SWAPF
XORWF REG,0
Antes: W = 0xB5, REG = 0xAF
Después: W = 0xB5, REG = 0x1A
40
La gama media tiene un
total de 35 instrucciones,
cada una de las cuales
ocupan 14 bits.