pic Jul. 2016 | Page 42

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.