Sunteți pe pagina 1din 20

3.4 Juego de instrucciones.

Primero hay que hacer algunas consideraciones: Se puede usar cualquier registro especial como fuente o destino en una instruccin. Si usamos el registro de Estado como registro destino, los bits C, Z y DC obtendrn los valores propios del resultado de la operacin. Por ejemplo:
clrf STATUS ; despus de su ejecucin STATUS = 00001000 ; correspondiendo ese 1 con el bit Z.

Todas las instrucciones que manipulan bit son instrucciones de tipo lecturamodificacin-escritura, es decir, primero se lee el registro, luego se opera y por ltimo se escribe el resultado. Esto hay que tenerlo en cuenta fundamentalmente cuando se trabaja sobre las puertas y en stas se cambian los bits del TRIS asociadas a ellas.

En la tabla 3.1 se especifica el significado de las distintas abreviaturas que van a ser utilizadas posteriormente para la descripcin detallada de cada una de las instrucciones de los PIC.

TABLA 3.1 Descripcin de las abreviaturas utilizadas.


Campo f w b k x d dest TOS PC PCLATCH GIE WDT
TO
PD

[ ] ( ) <>

Descripcin Direccin del registro (0x00 a 0x7F) Registro de trabaja (acumulador) Posicin de un bit de un registro (0 a 7) Literal, dato inmediato o direccin de una etiqueta. Valor indeterminado (0 1) Seleccin el destino; d = 0; el resultado se almacena en W. d = 1; el resultado se almacena en el registro f. Destino (registro W f) Nivel superior de la Pila. Contador de Programa. Parte alta del Contador de Programa Bit de activacin global de interrupciones. Perro guardin (Watchdog). Bit Time Out del Registro de Estado. Bit Power Down del Registro de Estado Opciones Contenido Se asigna a Campo de bits de un registro.

La tabla 3.2 muestra un resumen de todas las instrucciones que componen el lenguaje de programacin de los microcontroladores PIC de la Gama Media. TABLA 3.2 Instrucciones de la Gama Media.
INSTRUCCIONES SOBRE REGISTROS ORIENTADAS A BYTES 14 bits de la palabra de la Nemnicos, instruccin Descripcin Ciclos Operandos MSb LSb ADDWF f, d Suma W y f 1 00 0111 dfff ffff ANDWF f, d Y lgica entre W y f 1 00 0101 dfff ffff CLRF f Borra el registro f 1 00 0001 1fff ffff CLRW Borra el registro W 1 00 0001 0xxx xxxx COMF f, d Complementa f 1 00 1001 dfff ffff DECF f, d Decrementa f 1 00 0011 dfff ffff DECFSZ f, d Decrementa f y salta si es 0 1 (2) 00 1011 dfff ffff INCF f, d Incrementa f 1 00 1010 dfff ffff INCFSZ f, d Incrementa f y salta si es 0 1 (2) 00 1111 dfff ffff IORWF f, d O lgica entre W y f 1 00 0100 dfff ffff MOVF f, d Mueve f 1 00 1000 dfff ffff MOVWF f Mueve W a f 1 00 0000 lfff ffff NOP No hace nada 1 00 0000 0xx0 0000 RLF f, d Rota f a la izquierda 1 00 1101 dfff ffff RRF f, d Rota f a la derecha 1 00 1100 dfff ffff SUBWF f, d Resta W de f 1 00 0010 dfff ffff SWAPF f, d Intercambia los bytes de f 1 00 1110 dfff ffff XORWF f, d O lgica exclusiva de W y f 1 00 0110 dfff ffff INSTRUCCIONES SOBRE REGISTROS ORIENTADAS A BITS BCF f, b Borra el bit b del registro f 1 01 00bb bfff ffff BSF f, b Pone a 1 el bit b del registro f 1 01 01bb bfff ffff BTFSC f, b Testea el bit, y salta si es 0 1 (2) 01 10bb bfff ffff BTFSS f, b Testea el bit y salta si es 1 1 (2) 01 11bb bfff ffff INSTRUCCIONES CON LITERALES Y DE CONTROL ADDLW k Suma un literal con el W 1 11 111x kkkk kkkk ANDLW k Y lgica entre k y W 1 11 1001 kkkk kkkk CALL k Salto a subrutina 2 10 0kkk kkkk kkkk CLRWDT Pone a cero el WDT 1 00 0000 0110 0100 GOTO k Salto incondicional 2 10 1kkk kkkk kkkk IORLW k O lgica entre k y W 1 11 1000 kkkk kkkk MOVLW k Mueve el literal k a W 1 11 00xx kkkk kkkk RETFIE Retorno de interrupcin 2 00 0000 0000 1001 RETLW k Retorno con k en W 2 11 01xx kkkk kkkk RETURN Retorno de subrutina 2 00 0000 0000 1000 SLEEP Modo de reposo 1 00 0000 0110 0011 SUBLW k 1 11 110x kkkk kkkk XORLW k O exclusiva entre k y W 1 11 1010 kkkk kkkk Bits de Estado afectados C, DC, Z Z Z Z Z Z Z Z Z

C C C, DC, Z Z

C, DC, Z Z
TO , PD

TO , PD C, DC, Z Z

3.4.1 Descripcin detallada de las instrucciones por orden alfabtico.

ADDLW
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin: Ejemplo

Suma Literal con el W [etiqueta] ADDLW k 0 k 255 (W) + k W C, DC, Z 11 111x kkkk kkkk El contenido del registro W se suma con los ocho bits del literal k, almacenando el resultado en W.
ADDLW 0X15 Antes de la instruccin W = 0x10 Despus de la instruccin W= 0x25

ADDWF
Sintaxis: Operandos:

Suma W y el registro f

[etiqueta] ADDWF f, d 0 f 127 d [0, 1] (W) + (f) dest Operacin: Flags afectados: C, DC, Z 00 0111 dfff ffff Cdigo OP: Suma el contenido del registro W y el registro f. Si d es 0, Descripcin: el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. ADDWF FSR, 0 Ejemplo:
Antes de la instruccin Despus de la instruccin W = 0x17 FSR = 0xC2 W = 0xD9 FSR = 0xC2

ANDLW
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin: Ejemplo:

Y lgica entre Literal y W [etiqueta] ANDLW k 0 k 255 (W) AND (k) W Z 11 1001 kkkk kkkk Realiza la operacin lgica AND entre el registro W y los ocho bits del literal k. El resultado se almacena en el registro W.
ANDLW 0x5F Antes de la instruccin Despus de la instruccin W = 0xA3 W = 0x03 ;0101 1111 (0x5F) ;1010 0011 (0xA3) ;0000 0011 (0x03)

ANDWF
Sintaxis: Operandos:

Y lgica entre W y f

[etiqueta] ANDWF f, d 0 f 127 d [0, 1] (W) AND (f) dest Operacin: Flags afectados: Z 00 0101 dfff ffff Cdigo OP: Realiza la operacin lgica AND entre W y el registro f. Si Descripcin: d es 0, el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. ANDWF FSR, 1 Ejemplo:
Antes de la instruccin Despus de la instruccin W = 0x17 FSR = 0xC2 W = 0x17 FSR = 0x02 ;0001 0111 (0x17) ;1100 0010 (0xC2) ;0000 0010 (0x02)

BCF
Sintaxis: Operandos:

Borra un bit

[etiqueta] BCF f, b 0 f 127 0b7 0 f<b> Operacin: Flags afectados: Ninguno 01 00bb bfff ffff Cdigo OP: Borra el bit b del registro f. Descripcin: BCF FLAG_REG, 7 Ejemplo:
Antes de la instruccin Despus de la instruccin FLAG_REG = 0xC7 FLAG_REG = 0x47 ;1100 0111 ;0100 0111

BSF
Sintaxis: Operandos:

Pone a 1 un bit

[etiqueta] BSF f, b 0 f 127 0b7 1 f<b> Operacin: Flags afectados: Ninguno 01 01bb bfff ffff Cdigo OP: Pone a 1 el bit b del registro f. Descripcin: BSF FLAG_REG, 7 Ejemplo:
Antes de la instruccin Despus de la instruccin FLAG_REG = 0x0A FLAG_REG = 0x8A ;0000 1010 ;1000 1010

BTFSC
Sintaxis: Operandos:

Testeo de bit y salto si es 0

[etiqueta] BTFSC f, b 0 f 127 0b7 Salta si (f<b>) = 0 Operacin: Flags afectados: Ninguno 01 10bb bfff ffff Cdigo OP: Si el bit b del registro f es 0, se salta una instruccin y se Descripcin: continua con la ejecucin. AQU BTFSC FLAG, 4 Ejemplo:
FALSO GOTO VERDAD .......... .................................. Antes de la instruccin Despus de la instruccin REPETIR

PC = direccin de AQU Si FLAG, 4 =0 PC = direccin de VERDAD Si FLAG, 4 = 1 PC = direccin de FALSO

BTFSS
Sintaxis: Operandos:

Testeo de bit y salto si es 1

[etiqueta] BTFSS f, b 0 f 127 0b7 Salta si (f<b>) = 1 Operacin: Flags afectados: Ninguno 01 11bb bfff ffff Cdigo OP: Si el bit b del registro f es 1, se salta una instruccin y se Descripcin: continua con la ejecucin. AQU BTFSS FLAG, 4 Ejemplo:
FALSO GOTO VERDAD .......... .................................. Antes de la instruccin Despus de la instruccin REPETIR

PC = direccin de AQU Si FLAG, 4 =1 PC = direccin de VERDAD Si FLAG, 4 = 0 PC = direccin de FALSO

CALL
Sintaxis: Operandos: Operacin:

Salto a subrutina

[etiqueta] CALL k 0 k 2047 (PC) + 1 TOS, k PC<10:0>, (PCLATCH<4:3>) PC<12:11> Flags afectados: Ninguno 10 0kkk kkkk kkkk Cdigo OP: Salto a subrutina. Primero se guardan en la pila los 13 bits de Descripcin: la direccin de retorno (PC + 1). Despus se carga en el PC los 11 bits del inmediato k, los dos bits ms significativos los proporciona el PCLATCH<4:3>. CALL tarda dos ciclos de instruccin en ejecutarse. PROGRAMA CALL SUBRUTINA Ejemplo:
Antes de la instruccin Despus de la instruccin PC =direccin de PROGRAMA TOS = direccin de PROGRAMA + 1 PC = direccin de SUBRUTINA

CLRF
Sintaxis: Operandos: Operacin:

Borra un registro f

[etiqueta] CLRF f 0 f 127 00h f 1Z Flags afectados: Z 00 0001 1fff ffff Cdigo OP: Se borra el contenido del registro f y el flag Z de estado se Descripcin: activa. CLRF FLAG_REG Ejemplo:
Antes de la instruccin Despus de la instruccin FLAG_REG = 0x5A FLAG_REG = 0x00 Z=1

CLRW
Sintaxis: Operandos: Operacin:

Borra el registro W

[etiqueta] CLRW Ninguno 00h W 1Z Flags afectados: Z 00 0001 1xxx xxxx Cdigo OP: Se borra el contenido del registro W y el flag Z de estado se Descripcin: activa. CLRW Ejemplo:
Antes de la instruccin Despus de la instruccin W = 0x5A W = 0x00 Z=1

CLRWDT
Sintaxis: Operandos: Operacin:

Borra el Watchdog

[etiqueta] CLRWDT Ninguno 00h WDT 0 predivisor del WDT 1 TO 1 PD Flags afectados: TO , PD 00 0000 0110 01000 Cdigo OP: Se borra el contenido tanto del Watchdog como de su Descripcin: predivisor. Los bits TO y PD del Registro de Estado se ponen a 1. CLRWDT Ejemplo:
Antes de la instruccin Despus de la instruccin Temporizador WDT Predivisor WDT Temporizador WDT Registro predivisor WDT TO PD Predivisor WDT =x = 1:128 = 0x00 =0 =1 =1 = 1:128

COMF
Sintaxis: Operandos:

Complementa el registro f

[etiqueta] COMF f, d 0 f 127 d [0, 1] Operacin: ( f ) dest Flags afectados: Z 00 1001 dfff ffff Cdigo OP: Complementa el contenido del registro f. Si d es 0, el Descripcin: resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. COMF REG1, 0 Ejemplo:
Antes de la instruccin Despus de la instruccin REG1 = 0x13 REG1 = 0x13 W = 0xEC

DECF
Sintaxis: Operandos:

Decrementa el registro f

[etiqueta] DECF f, d 0 f 127 d [0, 1] (f) - 1 dest Operacin: Flags afectados: Z 00 0011 dfff ffff Cdigo OP: Decrementa el contenido del registro f. Si d es 0, el Descripcin: resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. DECF CONT, 1 Ejemplo:
Antes de la instruccin Despus de la instruccin CONT = 0x01 Z =0 CONT = 0x00 Z =1

DECFSZ
Sintaxis: Operandos:

Decrementa el registro f y salta si es 0

[etiqueta] DECFSC f, d 0 f 127 d [0, 1] (f) 1 dest; salta si el resultado es 0 Operacin: Flags afectados: Ninguno 00 1011 dfff ffff Cdigo OP: Decrementa el contenido del registro f. Si d es 0, el Descripcin: resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. Si el resultado es 0, se salta la siguiente instruccin y se continua con la ejecucin. RESTA DECFSZ CONT, 1 Ejemplo:
GOTO LAZO CONTINUAR ........... .............................................. Antes de la instruccin PC = direccin de RESTA CONT = 0x01 Despus de la instruccin CONT = 0x00 PC = direccin de CONTINUAR

GOTO
Sintaxis: Operandos: Operacin:

Salto Incondicional

[etiqueta] GOTO k 0 k 2047 k PC<10:0> PCLATCH<4:3> PC<12:11> Flags afectados: Ninguno 10 1kkk kkkk kkkk Cdigo OP: Salto incondicional. Se carga en el PC<10:0> los 11 bits del Descripcin: inmediato k. Los dos bits restantes los proporciona el PCLATCH<4:3>. GOTO tarda dos ciclos de instruccin en ejecutarse. GOTO SALTO Ejemplo:
Despus de la instruccin PC = direccin SALTO

INCF
Sintaxis: Operandos:

Incrementa el registro f

[etiqueta] INCF f, d 0 f 127 d [0, 1] (f) + 1 dest Operacin: Flags afectados: Z 00 1010 dfff ffff Cdigo OP: Incrementa el contenido del registro f. Si d es 0, el Descripcin: resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. INCF CONT, 1 Ejemplo:
Antes de la instruccin Despus de la instruccin CONT = 0xFF Z =0 CONT = 0x00 Z =1

INCFSZ
Sintaxis: Operandos:

Incrementa el registro f y salta si es 0

[etiqueta] INCFSC f, d 0 f 127 d [0, 1] (f) + 1 dest; salta si el resultado es 0 Operacin: Flags afectados: Ninguno 00 1111 dfff ffff Cdigo OP: Incrementa el contenido del registro f. Si d es 0, el Descripcin: resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. Si el resultado es 0, se salta la siguiente instruccin y se continua con la ejecucin. SUMA INCFSZ CONT, 1 Ejemplo:
GOTO LAZO CONTINUAR ........... .............................................. Antes de la instruccin PC = direccin de RESTA CONT = 0xFF Despus de la instruccin CONT = 0x00 PC = direccin de CONTINUAR

IORLW
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin: Ejemplo:

O lgica entre Literal y W

[etiqueta] IORLW k 0 k 255 (W) OR (k) W Z 11 1000 kkkk kkkk Realiza la operacin lgica OR entre el registro W y los ocho bits del literal k. El resultado se almacena en el registro W.
ANDLW 0x35 Antes de la instruccin Despus de la instruccin W = 0x9A W = 0xBF Z =0

IORWF
Sintaxis: Operandos:

O lgica entre W y f

[etiqueta] IORWF f, d 0 f 127 d [0, 1] (W) OR (f) dest Operacin: Flags afectados: Z 00 0100 dfff ffff Cdigo OP: Realiza la operacin lgica OR entre W y el registro f. Si Descripcin: d es 0, el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. IORWF REG, 0 Ejemplo:
Antes de la instruccin Despus de la instruccin REG = 0x13 W = 0x91 REG = 0x13 W = 0x93 Z =0

MOVLW
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin: Ejemplo:

Mueve un Literal a W

[etiqueta] MOVLW k 0 k 255 kW Ninguno 11 00xx kkkk kkkk El registro W se carga con el valor de los ocho bits del literal k.
MOVLW 0x5A Despus de la instruccin W = 0x5A

MOVF
Sintaxis: Operandos:

Mover a f

[etiqueta] MOVF f, d 0 f 127 d [0, 1] (f) dest Operacin: Flags afectados: Z 00 1000 dfff ffff Cdigo OP: El contenido del registro f se mueve al destino. Si d es 0, Descripcin: el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. MOVF FSR, 0 Ejemplo:
Antes de la instruccin Despus de la instruccin W FSR W Z = 0x00 = 0xC2 = 0xC2 =0

MOVWF
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin: Ejemplo:

Mueve W al registro f

[etiqueta] MOVWF f 0 f 127 (W) f Ninguno 00 0000 1fff ffff Mueve el contenido del registro W al registro f.
MOVWF OPTION_REG Antes de la instruccin OPTION_REG = 0xFF W = 0x4F Despus de la instruccin OPTION_REG = 0x4F W = 0x4F

NOP
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin: Ejemplo:

No operar

[etiqueta] NOP Ninguno No realiza ninguna operacin Ninguno 00 000 0xx0 0000 No realiza ninguna operacin.
ETIQUETA NOP Antes de la instruccin PC = direccin de ETIQUETA Despus de la instruccin PC = direccin de ETIQUETA + 1

RETFIE
Sintaxis: Operandos: Operacin:

Retorno de rutina de interrupcin

[etiqueta] RETFIE Ninguno TOS PC 1 GIE Flags afectados: Ninguno 00 0000 0000 1001 Cdigo OP: Retorno de una rutina de interrupcin. Los 13 bits de la Descripcin: direccin de retorno los carga en el PC desde la pila. El bit GIE (INTCON<7>) se pone automticamente a 1, habilitando nuevas interrupciones. Requiere dos ciclos de instruccin para su ejecucin. RETFIE Ejemplo:
Despus de la instruccin PC = TOS GIE = 1

RETLW
Sintaxis: Operandos: Operacin:

Retorno de subrutina con Literal en el W

[etiqueta] RETLW k 0 k 255 kW TOS PC Flags afectados: Ninguno 11 01xx kkkk kkkk Cdigo OP: El registro W se carga con los ocho bits del literal k. El PC Descripcin: toma los 13 bits de la direccin de retorno del nivel superior de la pila. Requiere dos ciclos de instruccin para su ejecucin. PROGRAMA CALL TABLA Ejemplo:
................. ................. TABLA ADDWF PC RETLW k0 RETLW k1 ........................... RETLW kn Antes de la instruccin W = 0x07 Despus de la instruccin W = valor de k7 PC= TOS = direccin de PROGRAMA +1

RETURN
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin:

Retorno de subrutina

[etiqueta] RETURN Ninguno TOS PC Ninguno 00 0000 0000 1000 Retorno de una subrutina de interrupcin. Los 13 bits de la direccin de retorno los carga en el PC desde la pila. Requiere dos ciclos de instruccin para su ejecucin.
FIN RETURN Despus de la instruccin PC = TOS

Ejemplo:

RLF
Sintaxis: Operandos:

Rota f a la izquierda a travs del Carry

[etiqueta] RLF f, d 0 f 127 d [0, 1] Rotacin a la izquierda de f. Operacin: Flags afectados: C 00 1101 dfff ffff Cdigo OP: El contenido del registro f se rota una posicin a la izquierda Descripcin: a travs del flag de carry. Si d es 0, el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f.
C Registro f

Ejemplo:

RLF REG1, 0 Antes de la instruccin Despus de la instruccin

REG1 C REG1 W C

= 1110 0110 =0 = 1110 0110 = 1100 1100 =1

RRF
Sintaxis: Operandos:

Rota f a la derecha a travs del Carry

[etiqueta] RRF f, d 0 f 127 d [0, 1] Rotacin a la derecha de f. Operacin: Flags afectados: C 00 1100 dfff ffff Cdigo OP: El contenido del registro f se rota una posicin a la derecha a Descripcin: travs del flag de carry. Si d es 0, el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f.
C Registro f

Ejemplo:

RLF REG1, 0 Antes de la instruccin Despus de la instruccin

REG1 C REG1 W C

= 1110 0110 =0 = 1110 0110 = 0111 0011 =0

SLEEP
Sintaxis: Operandos: Operacin:

Modo de reposo

[etiqueta] SLEEP Ninguno 00h WDT 0 predivisor del WDT 1 TO 0 PD Flags afectados: TO , PD 00 0000 0110 0011 Cdigo OP: Descripcin: El bit TO se pone a 1, y el bit PD del registro de Estado se pone a 0. Adems tambin se pone a cero el predivisor del predivisor del WDT. El procesador entra en el modo SLEEP o de reposo, dejando el oscilador principal de funcionar. SLEEP Ejemplo:

SUBLW
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin:

Resta W de un Literal

[etiqueta] SUBLW k 0 k 255 k (W) W C, DC, Z 11 110x kkkk kkkk El registro W se resta (mediante complemento a 2) de los ocho bits del literal k. El resultado es almacenado en el registro W.
SUBLW 0x02 Antes de la instruccin W = 0x01 C =x Z=x W = 0x01 C=1 Z=0

Ejemplo:

Despus de la instruccin

;el resultado es positivo

SUBWF
Sintaxis: Operandos:

Resta W del registro f

[etiqueta] SUBWF f, d 0 f 127 d [0, 1] (f) - (W) dest Operacin: Flags afectados: C, DC, Z 00 0010 dfff ffff Cdigo OP: El registro W se resta (mediante complemento a 2) del registro Descripcin: f. Si d es 0, el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. SUBWF REG1, 1 Ejemplo:
Antes de la instruccin REG1 W C Z REG1 W C Z =3 =2 =x =x =1 =2 =1 =0

Despus de la instruccin

;el resultado es positivo

SWAPF
Sintaxis: Operandos:

Intercambio de los Nibbles del registro f

[etiqueta] SWAPF f, d 0 f 127 d [0, 1] (f<3:0>) dest<7:4> Operacin: (f<7:4>) dest<3:0> Flags afectados: Ninguno 00 1110 dfff ffff Cdigo OP: Los cuatro bits ms significativos y menos significativos del Descripcin: registro f, son intercambiados entre si. Si d es 0, el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. SWAPF REG1, 0 Ejemplo:
Antes de la instruccin Despus de la instruccin REG1 = 0xA5 REG1 = 0xA5 W = 0x5A

XORLW
Sintaxis: Operandos: Operacin: Flags afectados: Cdigo OP: Descripcin:

O exclusiva entre un Literal y W

[etiqueta] XORLW k 0 k 255 (W) XOR (k) W Z 11 1010 kkkk kkkk Realiza la operacin lgica O exclusiva entre el registro W y los ocho bits del literal k. El resultado es almacenado en el registro W.
XORLW 0xAF Antes de la instruccin Despus de la instruccin W = 0xB5 W = 0x1A Z=0 ;1010 1111 ;1011 1010 ;--------------;0001 1010 (0xAF) (0xB5) --------(0x1A)

Ejemplo:

XORWF
Sintaxis: Operandos:

O exclusiva entre W y el registro f

[etiqueta] XORWF f, d 0 f 127 d [0, 1] (W) XOR (f) dest Operacin: Flags afectados: Z 00 0110 dfff ffff Cdigo OP: Realiza la operacin lgica O exclusiva entre el registro W y el Descripcin: registro f. Si d es 0, el resultado se almacena en el registro W, mientras que si es 1 se almacena en el registro f. XORWF REG, 1 Ejemplo:
Antes de la instruccin Despus de la instruccin REG = 0xAF W = 0xB5 REG = 0x1A W = 0xB5 ;1010 1111 ;1011 1010 ;--------------;0001 1010 (0xAF) (0xB5) --------(0x1A)

S-ar putea să vă placă și