Está en la página 1de 1

Electrónica Fácil

Secciones

Inicio
Volver

Foro Electrónica
Foro TV Digital
Circuitos Electronicos
Tutoriales Juegos instrucciones PIC
Encapsulados
Descargas INSTRUCCIONES QUE MANEJAN REGISTROS
Datasheets Nemónicos operandos Descripción Ciclos Flags
Efemérides científicas
Noticias Electrónica ADDWF f,d Suma W y f 1 C, DC, Z
Noticias Industria ANDWF f,d AND W con f 1 Z
Noticias Telefonía CLRF f Borra f 1 Z
Noticias Ciencia y Tecnología CLRW --- Borra W 1 Z
Comunicados prensa
COMF f,d Complementa f 1 Z
Archivo noticias
DECF f,d Decrementa f 1 Z
DECFSZ f,d Decrementa f, si es 0 salta 1 (2) Ninguno
INCF f,d Incrementa f 1 Z
INCFSZ f,d Incrementa f, si es 0 salta 1 Ninguno
IORWF f,d OR entre W y f 1 Z
MOVF f,d Mueve f 1 Z
MOVWF f Mueve W a f 1 Ninguno
El secreto del gigante chino
NOP --- No opera 1 Ninguno
El gran gigante asiático
elije a una agencia RLF f,d Rota f a la izqda. a través del carry 1 C
española para su RRF f,d Rota f a la dcha. a través del carry 1 C
expansión
SUBWF f,d Resta a f el reg. W 1 C, DC, Z
Foros Electrónica SWAPF f,d Intercambia f 1 Ninguno
XORWF f,d XOR de W con f 1 Z
Electrónica analógica INSTRUCCIONES QUE MANIPULAN BITS
Electrónica Digital
BCF f,b Borra bit de f 1 Ninguno
Electrónica de Potencia
Instrumentación y medición BSF f,b Pone a 1 el bit de f 1 Ninguno
Componentes electronicos BTFSC f,b Comprueba un bit de f y salta si es 0 1 (2) Ninguno
Robótica BTFSS f,b Comprueba un bit de f y salta si es 1 1 (2) Ninguno
Domótica
INSTRUCCIONES DE CONTROL Y DE OPERANDOS INMEDIATOS
Ordenadores
Energías alternativas ANDLW k AND inmediato con W 1 Z
CALL k Llamada a subrutina 2 Ninguno
CLRWDT k Borra Watchdog 1 TO, PD
GOTO k Salto incondicional 2 Ninguno
Política de cookies + IORLW k OR inmediato con W 1 Z
Boletines desitio
correo MOVLW k Mueve a W un valor inmediato 1 Ninguno
Las cookies de este web se usan para personalizar el contenido y los anuncios, ofrecer funciones de redes sociales y analizar el tráfico. Además, compartimos información sobre el uso que haga del sitio web con nuestros partners de redes sociales, publicidad y análisis web,
quienes pueden combinarla con otra información que les haya proporcionado o que OPTION k haya hechoCarga
hayan recopilado a partir del uso que de suselservicios.
registro OPTION Aceptar Ver detalles 1 Ninguno
RETLW k Retorno y carga de W 2 Ninguno
SLEEP --- Pasa a estado de reposo 1 TO, PD
TRIS f Carga el registro 1 Ninguno
XORLW k OR exclusiva a W 1 Z
ADDWF
Suma W y f
Sintaxis: [label] ADDWF f,d
Alguien dijo ... Operandos: d=0 ó d=1; 0 <= f <= 31
Las ciencias aplicadas no existen, Operación: (W) + (f) --> (dest)
sólo las aplicaciones de la ciencia. Flags afectados: C, DC, Z
Suma el contenido del registro W y el registro "f". Si "d" es 0, el
Louis Pasteur(1822-1895). Descripción: resultado se almacena en el registro W. Si "d" es 1 el resutado se
Químico y bacteriólogo francés. almacena en el registro "f".
Electrónica Fácil en Twitter ADDWF REG,0 Antes de la instrucción: Después de la
Ejemplo: W= 0x17 REF= 0xC2 W= 0xD9 REG= 0xC2
instrucción:
ANDWF
W AND f
Sintaxis: [label] ANDWF f,d
Operandos: d=0 ó d=1; 0 <= f <= 31
Operación: (W) AND (f) --> (dest)
Flags afectados: Z
Realiza la operación lógica AND entre el registro W y el registro
Descripción: "f". Si "d" es 0 el resultado se almacena en el registro W. Si "d"
es 1, el resultado se almacena en el registro "f".
Contacto ANDWF REG,1 Antes de la instrucción: Después de la
Ejemplo: W=0x17 REG= 0xC2 W=0x17 REG= 0x02
instrucción:
Prensa ANDLW
W AND literal
Sintaxis: [label] ANDWL k
Operandos: 0 <= k <= 255
Operación: (W) AND (k) --> (W)
Flags afectados: Z
Realiza la operación lógica AND entre el registro W y la
Descripción:
constante "k". El resultado se almacena en el registro W.
ANDLW 0x5FAntes de la instrucción: Después de la
Ejemplo: W= 0xA3 W= 0x03
instrucción:
BCF
Borra un bit
Sintaxis: [label] BCF f,b
Operandos: 0 <= f <= 31; 0 <= b <= 7;
Operación: 0 --> (f < b >)
Flags afectados: Ninguno
Descripción: Borra el bit "b" del registro "f".
Ejemplo: BCF REG,7Antes de la instrucción: Después de la instrucción: REG = 0x0A REG = 0x47
BSF
Activa un bit
Sintaxis: [label] BSF f,b
Operandos: 0 <= f <= 31; 0 <= b <= 7;
Operación: 1 --> (f < b >)
Flags afectados: Ninguno
Descripción: Activa el bit "b" del registro "f".
BSF REG,0x0AAntes de la instrucción: Después de la
Ejemplo: REG = 0x0A REG = 0x8A
instrucción:
BTFSC
Test de bit y salto
Sintaxis: [label] BTFSC f,b
Operandos: 0 <= f <= 31; 0 <= b <= 7;
Operación: Salto si (f < b >) = 0
Flags afectados: Ninguno
Si el bit "b" del registro "f" es 0, se salta una instrucción y se
Descripción:
continúa con la ejecución.
PC= Dirección (COM_) SI REG <1> = 0 PC=
COM BTFSC REG,1FALSE GOTO PROCESA_X TRUE ºAntes
Ejemplo: Dirección (TRUE)SI REG <1> = 1 PC= Dirección
de la instrucción: Después de la instrucción:
(FALSE)
BTFSS
Test de bit y salto
Sintaxis: [label] BTFSS f,b
Operandos: 0 <= f <= 31; 0 <= b <= 7;
Operación: Salto si (f < b >) = 1
Flags afectados: Ninguno
Si el bit "b" del registro "f" es 1, se salta una instrucción y se
Descripción:
continúa con la ejecución.
PC= Dirección (COM_) SI REG <6> = 0 PC=
COM BTFSS REG,6FALSE GOTO PROCESA_X TRUE ºAntes
Ejemplo: Dirección (FALSE)SI REG <6> = 1 PC= Dirección
de la instrucción: Después de la instrucción:
(TRUE)
CALL
Salto a subrutina
Sintaxis: [label] CALL k
Operandos: 0 <= k <= 255
Operación: (PC) + 1 --> stack; k --> PC
Flags afectados: Ninguno
Salto a subrutina. La dirección de retorno se guarda en el stack.
La constante "k" de 8 bits forma la dirección de salto y se carga
Descripción:
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 instrucción: Después de la
Ejemplo: PC = ORG PC = DESTINO
instrucción:
CLRF
Borra un registro
Sintaxis: [label] CLRF f
Operandos: 0 <= f <= 32
Operación: 00f --> (f); 1 --> Z
Flags afectados: Z
Se borra el contenido del registro "f" y el flag Z de estado se
Descripción:
activa.
Ejemplo: CLRF REGAntes de la instrucción: Después de la instrucción: REG = 0x5A REG = 0x00 Z = 1
CLRW
Borra el registro W
Sintaxis: [label] CLRW
Operandos: Ninguno
Operación: 00h --> W; 1 --> Z
Flags afectados: Z
El registro de trabajo "W" se carga con 00h. El flag de Z se
Descripción:
activa.
Ejemplo: CLRWAntes de la instrucción: Después de la instrucción: W = 0x5A W = 0x00 Z = 1
CLRWDT
Borra el "watchdog"
Sintaxis: [label] CLRWDT
Operandos: Ninguno
Operación: 00h --> WDT; 1 --> TO; 1 --> PD;
Flags afectados: TO, PD
Esta instrucción borra tanto el "watchdog" como el prescaler.
Descripción:
Los bits TO y PD del registro de estado se ponen a "1".
Contador WDT = 0Prescaler WDT = 0 Bit de estado
Ejemplo: CLRWDT Después de la instrucción:
TO = 1 Bit de estado PD = 1
COMF
Complementa f
Sintaxis: label COMF f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: (f) --> (dest)
Flags afectados: Z
El contenido del registro "f" se complementa. Si "d" es 0 el
Descripción: resultado "R" se almacena en el registro W. Si "d" es 1, el
resultado "R" se almacena en el registro "f".
Ejemplo:
DECF
Decremento de f
Sintaxis: [label] DECF f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: (f) - 1 --> (dest)
Flags afectados: Z
Se decrementa en una unidad el contenido del registro "f". Si
Descripción: "d" es 0, el resultado se almacena en W. Si "d" es 1, el resultado
se almacena en "f".
DEC CONT, 1 Antes de la instrucción: Después de la
Ejemplo: CONT = 0x01 Z = 0 CONT = 0x00 Z = 1
instrucción:
DECFSZ
Decremento y salto
Sintaxis: [label] DECFSZ f,d
Operandos: 0 <= f <= 32; d = 0 ó d = 1
Operación: (f) - 1 --> d; Salto si R = 0
Flags afectados: Ninguno
El contenido del registro "f" se decrementa. Si "d" es 0, el
resultado "R" se coloca en el registro W. Si "d" es 1, el resultado
Descripción:
"R" se coloca en el registro "f". Si R = 0, se salta la siguiente
instrucción y se continúa con la ejecución.
PC = Dirección (COM_) REG = REG - 1SI REG = 0
COM_ DECFSZ REG,O GOTO_NO_ES_0Antes de la
Ejemplo: PC = Dirección CONTINUASI REG != 0 PC =
instrucción: Después de la instrucción:
Dirección (COM_ + 1)
GOTO
Salto incondicional
Sintaxis: [label] GOTO k
Operandos: 0 <= k <= 511
Operación: k --> PC --> <8:0>
Flags afectados: Ninguno
Se trata de un salto incondicional. Los 9 bits de la constante "k"
que forman la instrucción, se cargan en los bits <8:0> del PC y
Descripción:
forman la dirección de salto. Los bits <10:9> del PC se cargan
con los bits <6:5> del registro de estado.
ORG GOTO DESTINOAntes de la instrucción: Después de la
Ejemplo: PC = 0 PC = DESTINO
instrucción:
INCF
Incremento de f
Sintaxis: [label] INCF f,d
Operandos: 0 <= k <= 31; d = 0 ó d = 1
Operación: (f) + 1 --> (dest)
Flags afectados: Z
Incrementa en una unidad el contenido del registro "f". Si "d"
Descripción: es 0, el resultado se almacena en W. Si "d" es 1, el resultado se
almacena en "f".
INCF CONT,1 Antes de la instrucción: Después de la
Ejemplo: CONT = 0xFF Z = 0 CONT = 0x00 Z = 1
instrucción:
INCFSZ
Incremento de f, si es 0 salta
Sintaxis: [label] INCFSZ f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: (f) + 1 --> (dest); Salto si R = 0
Flags afectados: Ninguno
Incrementa en una unidad el contenido del registro "f". Si "d"
es 0, el resultado se almacena en W. Si "d" es 1, el resultado se
Descripción:
almacena en "f". Si R=0, se salta la siguiente instrucción y se
continúa con la ejecución.
PC = Dirección (COM_) CONT + 1SI CNT = 0 PC =
COM_ INCFSZ REG,1 GOTO_NO_ES_0 CONTINUAAntes de
Ejemplo: Dirección CONTINUASI REG != 0 PC = Dirección
la instrucción: Después de la instrucción:
(COM_ + 1)
IORLW
W OR literal
Sintaxis: [label] IORLW k
Operandos: 0 <= f <= 255
Operación: (W).OR.(k) --> (W)
Flags afectados: Z
Se realiza la función lógica OR entre el registro W y la contante
Descripción:
"k". El resultado se almacena en el registro W.
IORLW Ox35Antes de la instrucción: Después de la
Ejemplo: W = 0x9A W = 0xBF
instrucción:
IORWF
OR entre W y f
Sintaxis: [label] IORWF f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: (W).OR.(f) --> (dest)
Flags afectados: Z
Realiza la operación lógica OR entre el registro W y el registro
Descripción: "f". Si "d" es 0 el resultado se almacena en el registro W. Si "d"
es 1, el resultado se almacen en el registro "f".
IORWF REG,0 Antes de la instrucción: Después de la RESULTADO = 0x13 W = 0x91 RESULTADO =
Ejemplo:
instrucción: 0x13W = 0x93 Z = 0
MOVF
Mover a f
Sintaxis: [label] MOVF f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: (f) --> (dest)
Flags afectados: 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
Descripción:
registro "f". Esta posibilidad permite verificar dicho registro ya
que el flag Z queda afectado.
Ejemplo: MOVF REG,0 Después de la instrucción: W = REG
MOVLW
Carga un literal en W
Sintaxis: label MOVLW k
Operandos: 0 <= f <= 255
Operación: (k) --> (W)
Flags afectados: Ninguno
El registro W se carga con el valor de 8 bits expresado mediante
Descripción:
la literal "k".
Ejemplo: MOVLW 0x5A Después de la instrucción: W = 0x5A
MOVWF
Mover W a f
Sintaxis: label MOVWF f
Operandos: 0 <= f <= 31
Operación: (W) --> (dest)
Flags afectados: Ninguno
Descripción: Mueve el contenido del registro W al registro "f".
MOVWF REG Antes de la instrucción: Después de la
Ejemplo: REG = 0xFF W = 0x4F REG = 0x4F W = 0x4F
instrucción:
NOP
No operar
Sintaxis: [label] NOP
Operandos: Ninguno
Operación: No operar
Flags afectados: Ninguno
Descripción: No realiza operación alguna. Consume un ciclo de instrucción.
Ejemplo: NOP
OPTION
Carga reg. OPTION
Sintaxis: [label] OPTION
Operandos: Ninguno
Operación: (W) --> OPTION
Flags afectados: Ninguno
El contenido del registro W se carga en el registro OPTION.
Descripción: Este es un registro de sólo escritura donde se configura el
funcionamiento del prescaler y el TMR0.
Ejemplo: OPTIONAntes de la instrucción: Después de la instrucción: W = 0x07 OPTION = 0x07
RETWL
Retorno, carga W
Sintaxis: [label] RETWL k
Operandos: 0 <= f <= 255
Operación: (k) --> (W); TOS --> PC
Flags afectados: Ninguno
El registro W se carga con los 8 bits de la constante k. El PC se
Descripción: carga con el contenido de la cima stack (TOS): dirección de
retorno. Esta instrucción consume dos ciclos.
Ejemplo: TABLA W = 07 W = Valor de K8
RLF
Rota f a la izquierda
Sintaxis: [label] RLF f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: Rotación a la izquierda de f
Flags afectados: C
El contenido del registro "f" se rota una posición a la izquierda.
El bit de más peso pasa al carry y el carry se introduce por el bit
Descripción:
de menos peso de "f". Si "d" es 0, el resultado se coloca en el
registro W. Si "d" es 1, el resultado queda en el registro "f".
REG1 = 11100110 C = 0 REG1 = 11100110W =
Ejemplo: RLF REG1,0 Antes de la instrucción: Después de la instrucción:
11001100 C = 1
RRF
Rota f a la derecha
Sintaxis: [label] RRF f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: Rotación 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 carry. El carry se coloca en el bit
Descripción:
de más 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".
REG1 = 11100110 C = 0 REG1 = 11100110W =
Ejemplo: RRF REG1 Antes de la instrucción: Después de la instrucción:
01110011 C = 0
SLEEP
Pasa a estado de reposo
Sintaxis: [label] SLEEP
Operandos: Ninguno
Operación: ooh --> WDT; 0 --> WDT prescaler; 1 --> TO; 0 --> PD
Flags afectados: TO, PD, GPWUF
Al salir, activa el bit de estado TO y borra el PD.El WDT y el
Descripción: prescaler se borran.Al entrar en el modo SLEEP, se detiene el
oscilador.
Ejemplo: SLEEP
SUBWF
Resta f - W
Sintaxis: [label] SUBWF f,d
Operandos: 0 <= f <= 32; d = 0 ó d = 1
Operación: (f) - (W) --> (dest)
Flags afectados: C, DC, Z
Resta, por el método del complemento a 2, el contenido del
registro "f" menos el contenido del registro W. Si "d" es 0, el
Descripción: resultado se almacena en el registro W. Si "d" es 1, el resultado
se almacena en el registro "f". Si el resultado es negativo, el
carry se pone a 0.
SUBWF REG,1 Antes de la instrucción: Después de la
Ejemplo: REG = 1 W = 2 REG = 0xFF W = 0xFF
instrucción:
SWAPF
Intercambio de f
Sintaxis: [label] SWAPF f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: (f<3:0>) --> (dest.<7:4>) (f<7:4>) --> (dest.<3:0>)
Flags afectados: Ninguno
Los cuatro bits de más peso del registro "f" se intercambian con
los cuatro bits de menos peso del mismo registro. Si "d" es 0, el
Descripción:
resultado se coloca en el registro W. Si "d" es 1, el resultado
queda en el registro "f".
SWAPF REG,0Antes de la instrucción: Después de la
Ejemplo: REG = 0x5A REG = 0x5A W = 0xA5
instrucción:
TRIS
Carga registro TRIS
Sintaxis: [label] TRIS f
Operandos: 5 <= f <= 7
Operación: (W) --> Registro TRIS "f"
Flags afectados: Ninguno
El contenido del registro W se carga en uno de los tres registros
TRIS (TRISA, TRISB, TRISC) según "f" valga 5, 6 ó 7
Descripción: respectivamente. Los registros TRIS se emplean para
configurar cada una de las puertas A, B ó C para que actúen sus
líneas como entrada o salida.
TRIS PORTAAntes de la instrucción: Después de la
Ejemplo: W = 0xA5 TRISA = 0xA5
instrucción:
XORLW
W XOR literal
Sintaxis: [label] XORLW k
Operandos: 0 <= k <= 255
Operación: (W).XOR.K --> (W)
Flags afectados: Z
Realiza la función lógica OR exclusiva (EOR) entre el contenido
Descripción: del registro W y la constante "k" de 8 bits. El resultado se
almacena en el registro W.
XORLW 0xAFAntes de la instrucción: Después de la
Ejemplo: W = 0xB5 W = 0x1A
instrucción:
XORWF
W XOR f
Sintaxis: [label] XORWF f,d
Operandos: 0 <= f <= 31; d = 0 ó d = 1
Operación: (W).XOR.(f) --> (dest.)
Flags afectados: Z
Realiza la función lógica OR exclusiva (EOR) entre el contenido
del registro W y el registro "f". Si "d" es 0, el resultado se
Descripción:
almacena en el registro W. Si "d" es 1 el resultado se almacena
en el registro "f".
XORWF REG,1 Antes de la instrucción: Después de la
Ejemplo: REG = 0xAF W = 0xB5 REG = 0x1A W = 0xB5
instrucción:

© 2004 - 2020 Información Legal

También podría gustarte