Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sintaxis: [label] ADDLW k Sintaxis: [label] ADDWF f,d Sintaxis: [label] ANDLW k
Operandos: 0 ≤ k ≤ 255 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: 0 ≤ k ≤ 255
Operación: : (W) + (k)⇒ (W) Operación: (W) + (f) ⇒ (dest) Operación: : (W) AND (k)⇒ (W)
Flags afectados: C, DC, Z Flags afectados: C, DC, Z Flags afectados: Z
Código OP: 11 111x kkkk kkkk Código OP: 00 0111 dfff ffff Código OP: 11 1001 kkkk kkkk
Descripción: Suma el contenido del Descripción: Suma el contenido del Descripción: Realiza la operación
registro W y k, guardando el registro W y el registro f. Si d es 0, el lógica AND entre el contenido del
resultado en W. resultado se almacena en W, si d es 1 registro W y k, guardando el
se almacena en f. resultado en W.
Sintaxis: [label] ANDWF f,d Sintaxis: [label] BCF f,b Sintaxis: [label] BSF f,b
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: 0 ≤ f ≤ 127, 0 ≤ b ≤ 7 Operandos: 0 ≤ f ≤ 127, , 0 ≤ b ≤
Operación: (W) AND (f) ⇒ (dest) Operación: : 0 ⇒ (f<b>) 7
Flags afectados: Z Flags afectados: Ninguno Operación: 1 ⇒ (f<b>)
Código OP: 00 0101 dfff ffff Código OP: 01 00bb bfff ffff Flags afectados: Ninguno
Código OP: 01 01bb bfff ffff
Descripción: Realiza la operación Descripción: Borra el bit b del
lógica AND entre los registros W y f. registro f Descripción: Activa el bit b del
Si d es 0, el resultado se almacena en registro f
W, si d es 1 se almacena en f.
Ejemplo: : ANDWF REG,0 Ejemplo: : BCF REG,7
Ejemplo: : BSF REG,7
Antes: W = 0x17., REG = 0xC2 Antes: REG = 0xC7
Después: W = 0x17, REG = 0x02 Después: REG = 0x47 Antes: REG = 0x0A
Después: REG = 0x8A
BTFSC Test de bit y salto BTFSS Test de bit y CALL Salto a subrutina
salto
Sintaxis: [label] BTFSC f,d Sintaxis: [label] CALL k
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Sintaxis: [label] BTFSS f,d Operandos: 0 ≤ k ≤ 2047
Operación: Salto si (f<b>) = 0 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operación: PC ⇒ Pila; k ⇒ PC
Flags afectados: Ninguno Operación: Salto si (f<b>) = 1 Flags afectados: Ninguno
Código OP: 01 10bb bfff ffff Flags afectados: Ninguno Código OP: 10 0kkk kkkk kkkk
Código OP: 01 11bb bfff ffff
Descripción: Si el bit b del registro f Descripción: Salto a una subrutina.
es 0, se salta una instrucción y se Descripción: Si el bit b del registro f La parte baja de k se carga en PCL, y
continúa con la ejecución. En caso de es 1, se salta una instrucción y se la alta en PCLATCH. Ocupa 2 ciclos
salto, ocupará dos ciclos de reloj. continúa con la ejecución. En caso de de reloj.
Ejemplo: BTFSC REG,6 salto, ocupará dos ciclos de reloj. Ejemplo:ORIGEN CALL DESTINO
GOTO NO_ES_0 Ejemplo: BTFSS REG,6
SI_ES_0 Instrucción GOTO NO_ES_0 Antes: PC = ORIGEN
NO_ES_0 Instrucción SI_ES_0 Instrucción Después: PC = DESTINO
CLRF Borra un registro CLRW Borra el registro W CLRWDT Borra el WDT
Sintaxis: [label] COMF f,d Sintaxis: [label] DECF f,d Sintaxis: [label] DECFSZ f,d
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127
Operación: : (/ f), 1 ⇒ (dest) Operación: : (f ) – 1 ⇒ (dest) Operación: (f) -1 ⇒ d; Salto si R=0
Flags afectados: Z Flags afectados: Z Flags afectados: Ninguno
Código OP: 00 1001 dfff ffff Código OP: 00 0011 dfff ffff Código OP: 00 1011 dfff ffff
Sintaxis: [label] GOTO k Sintaxis: [label] INCF f,d Sintaxis: [label] INCFSZ f,d
Operandos: 0 ≤ k ≤ 2047 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127
Operación: k ⇒ PC <8:0> Operación: : (f ) + 1 ⇒ (dest) Operación: (f) -1 ⇒ d; Salto si R=0
Flags afectados: Ninguno Flags afectados: Z Flags afectados: Ninguno
Código OP: 10 1kkk kkkk kkkk Código OP: 00 1010 dfff ffff Código OP: 00 1111 dfff ffff
Sintaxis: [label] IORLW k Sintaxis: [label] IORWF f,d Sintaxis: [label] MOVLW f
Operandos: 0 ≤ k ≤ 255 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: 0 ≤ f ≤ 255
Operación: : (W) OR (k)⇒ (W) Operación: (W) OR (f) ⇒ (dest) Operación: (k) ⇒ (W)
Flags afectados: Z Flags afectados: Z Flags afectados: Ninguno
Código OP: 11 1000 kkkk kkkk Código OP: 00 0100 dfff ffff Código OP: 11 00xx kkkk kkkk
Antes: W = 0x9A Antes: W = 0x91, REG = 0x13 Después: REG = 0x4F, W = 0x5A
Después: W = 0xBF Después: W = 0x93, REG = 0x13
Sintaxis: [label] MOVF f,d Sintaxis: [label] MOVWF f Sintaxis: [label] NOP
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: 0 ≤ f ≤ 127 Operandos: Ninguno
Operación: (f) ⇒ (dest) Operación: W ⇒ (f) Operación: No operar
Flags afectados: Z Flags afectados: Ninguno Flags afectados: Ninguno
Código OP: 00 1000 dfff ffff Código OP: 00 0000 1fff ffff Código OP: 00 0000 0xx0 0000
Descripción: El contenido del
registro f se mueve al destino d. Si d Descripción: El contenido del Descripción: No realiza operación
es 0, el resultado se almacena en W, registro W pasa el registro f. alguna. En realidad consume un ciclo
si d es 1 se almacena en f. Permite de instrucción sin hacer nada.
verificar el registro, puesto que afecta
a Z.
Ejemplo: MOVF REG,0 Ejemplo: MOVWF REG,0 Ejemplo: : CLRWDT
Sintaxis: [label] RLF f,d Sintaxis: [label] RRF f,d Sintaxis: [label] SLEEP
Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: Ninguno
Operación: Rotación a la izquierda Operación: Rotación a la derecha Operación: 0x00⇒WDT, 1 ⇒ / TO
Flags afectados: C Flags afectados: C 0 ⇒ WDT Preescaler, 0 ⇒ / PD
Código OP: 00 1101 dfff ffff Código OP: 00 1100 dfff ffff Flags afectados: / PD, / TO
Código OP: 00 0000 0110 0011
Descripción: El contenido de f se Descripción: El contenido de f se
rota a la izquierda. El bit de menos rota a la derecha. El bit de menos Descripción: El bit de energía se
peso de f pasa al carry (C), y el carry peso de f pasa al carry (C), y el carry pone a 0, y a 1 el de descanso. El
se coloca en el de mayor peso. Si d es se coloca en el de mayor peso. Si d es WDT y su preescaler se borran. El
0, el resultado se almacena en W, si d 0, el resultado se almacena en W, si d micro para el oscilador, llendo al
es 1 se almacena en f. es 1 se almacena en f. modo “durmiente”.
Antes: REG = 1110 0110, C = 0 Antes: REG = 1110 0110, C = 1 Preescales WDT = 0,
Después: REG = 1110 0110, Después: REG = 1110 0110, /TO = 1, /PD = 1
W = 1100 1100, C = 1 W = 01110 0011, C = 0
Sintaxis: [label] SUBLW k Sintaxis: [label] SUBWF f,d Sintaxis: [label] SWAPF f,d
Operandos: 0 ≤ k ≤ 255 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127 Operandos: d ∈ [0,1], 0 ≤ f ≤ 127
Operación: ( k ) - (W) ⇒ (W) Operación: ( f ) – (W )⇒ (dest) Operación: : (f <3: 0>)⇔ (f <7:4>)
Flags afectados: Z, C, DC Flags afectados: C, DC, Z Flags afectados: Ninguno
Código OP: 11 110x kkkk kkkk Código OP: 00 0010 dfff ffff Código OP: 00 1110 dfff ffff
Descripción: Mediante el método del Descripción: Mediante el método del
complemento a dos el contenido de complemento a dos el contenido de Descripción: Los 4 bits de más peso
W es restado al literal. El resultado se W es restado al de f. . Si d es 0, el y los 4 de menos son intercambiados.
almacena en W. resultado se almacena en W, si d es 1 Si d es 0, el resultado se almacena en
se almacena en f. W, si d es 1 se almacena en f.