Está en la página 1de 7

SET DE INSTRUCCIONES

INSTRUCCIONES ORIENTADAS A REGISTROS

BANDERAS DE
INSTRUCCIN EXPLICACIN CICLOS STATUS
AFECTADAS

SUMA W+F Y EL RESULTADO LO ALMACENA


EN F SI D=0 O Y EN F SI D=1
EJEMPLO:
ADDWF F, D SI W = 22
TEMP = 28
ADDWF TEMP,0 1 C, DC, Z
W = 50
TEMP = 28
ADDWF TEMP,1
W = 50
TEMP = 78

HACE UNA AND ENTRE W Y F, EL RESULTADO


LO ALMACENA EN F SI D=0 O A F SI D=1
EJEMPLO:
ANDWF F, D SI W = 11100011
TEMP = 11111000
ANDWF TEMP,0 1 Z
W= 11100000
TEMP = 11111000
ANDWF TEMP,1
W= 11100000
TEMP = 11100000

CLRF F CARGA CON CERO EL REGISTRO F


SI AUX = 79
CLRF AUX 1 Z
AUX = 0
CARGA CON CERO EL REGISTRO DE
CLRW TRABAJO W
SI W = 29 1 Z
CLRW
W=0
COMF F, D COMPLEMENTA F Y EL RESULTADO LO 1 Z
ALMACENA EN W SI D=0 O A F SI D=1
EJEMPLO:
SI W = 11100010
VARIABLE = 01110011
COMF VARIABLE,0
W = 10001100
VARIABLE = 01110011
COMF VARIABLE,1
W = 10001100
VARIABLE = 10001100

DECREMENTA F Y EL RESULTADO LO
ALMACENA EN F SI D=0 O A F SI D=1
EJEMPLO:
Si W = 22
DECF F, D CONTADOR = 28
DECF CONTADOR, 0 1 Z
W = 27
CONTADOR = 28
DECF CONTADOR,1
W = 27
TEMP = 27
DECREMENTA F Y SALTA UNA INSTRUCCION
SI ES CERO. EL RESULTADO LO ALMACENA
EN F SI D=0 O A F SI D=1
EJEMPLO:
Si W = 24
CONTADOR = 2
DECFSZ CONTADOR,1
INSTRUCCIN 1
INSTRUCCIN2
SE REALIZA LA INSTRUCCIN 1 PRIMERO
(OSEA QUE NO SALTA DICHA INSTRUCCIN
DECFSZ F, D YA QUE CONTADOR AL DECREMENTARSE ES
UNO Y NO CERO)
1(2)
EN ESTE CASO
W =24
CONTADOR = 1
DECFSZ CONTADOR, 1
INSTRUCCIN 3
INSTRUCCIN 4
EN ESTE CASO AL DECREMENTAR
CONTADOR SE OBTIENE UN RESULTADO
CERO Y POR LO TANTO SE SALTARE UNA
INTRUCCIN Y POR ESO SE HAR LA
INSTRUCCIN 4
W = 24
CONTADOR = 0
INCREMENTA F Y EL EL RESULTADO LO
ALMACENA EN F SI D=0 O A F SI D=1
EJEMPLO:
Si W = 22
CONTADOR = 28
INCF F, D INCF CONTADOR, 0
W = 29 1 Z
CONTADOR = 28
INCF CONTADOR,1
W = 29
TEMP = 29
INCREMENTA F Y SALTA UNA INSTRUCCION SI
ES CERO. EL RESULTADO LO ALMACENA EN
F SI D=0 O A F SI D=1
EJEMPLO:
Si W = 24
CONTADOR = 254
INCFSZ CONTADOR,1
INSTRUCCIN 1
INSTRUCCIN2
SE REALIZA LA INSTRUCCIN 1 PRIMERO
(OSEA QUE NO SALTA DICHA INSTRUCCIN
YA QUE CONTADOR AL INCREMENTARSE ES
INCFSZ F, D UNO Y NO CERO)
EN ESTE CASO
1(2)
W =24
CONTADOR = 255
INCFSZ CONTADOR, 1
INSTRUCCIN 3
INSTRUCCIN 4
EN ESTE CASO AL INCREMENTAR CONTADOR
SE OBTIENE UN RESULTADO CERO YA QUE
EL 256 NO PUEDE EXPRESARSE EN 8 BITS LO
QUE GENERA UN ACARREO Y LOS 8 BITS SE
INICIALIZAN NUEVAMENTE EN CERO Y POR
LO TANTO SE SALTARE UNA INSTRUCCIN Y
POR ESO SE HAR LA INSTRUCCIN 4
W = 24
CONTADOR = 0
HACE UNA OR ENTRE W Y F . EL RESULTADO
LO ALMACENA EN F SI D=0 O A F SI D=1
HACE UNA OR ENTRE W Y F, EL RESULTADO
LO ALMACENA EN F SI D=0 O EN F SI D=1
EJEMPLO:
IORWF F, D SI W = 11100011
TEMP = 11111000 1 Z
IORWF TEMP,0
W= 11111011
TEMP = 11111000
IORWF TEMP,1
W= 11100000
TEMP = 11111011
MUEVE F A W SI D=0 Y A F SI D=1
EJEMPLO:
MOVF F, D SI W = 32
TOTAL = 22 1 Z
MOVF TOTAL,0
W = 22
TOTAL = 22
MOVWF F
MUEVE EL CONTENIDO DE W A F 1

NOP NO OPERA 1
ESTA OPERACIN SE EMPLEA BSICAMENTE
EN LA GENERACIN DE RETARDOS

ROTA UN BIT A LA IZQUIERDA Y LLEVA EL DE


MAYOR PESO AL CARRY (ACARREO O
BANDERA C DEL REGISTRO STATUS). EL
RESULTADO LO ALMACENA EN F SI D=0 O A F
SI D=1
RLF F, D EJEMPLO:
VARIABLE = 01110111 1 C
SI EL ACARREO ESTA EN 0
RLF VARIABLE,1
VARIABLE = 00111011 C = 1
W NO SE VE AFECTADO

ROTA UN BIT A LA DERECHA Y LLEVA EL BIT


DE MENOR PESO DE F AL CARRY. EL
RESULTADO LO ALMACENA EN F SI D=0 O A F
RRF F, D SI D=1
EJEMPLO:
1 C
VARIABLE = 01110111
SI EL ACARREO ESTA EN 0
RLF VARIABLE,1
VARIABLE = 11101110 C = 0
W NO SE VE AFECTADO
RESTA F-W SI LA RESTA ES POSITIVA EL
SUBWF F, D CARRY SE CARGA CON UNO Y SE ES
NEGATIVA SE CARGA CON CERO. EL 1 C, DC, Z
RESULTADO DE LA OPERACIN ES
ALMACENADO EN F SI D=1 Y EN W SI D=0
INTERCAMBIA LOS 4 BITS DE MAYOR PESO
DE F CON LOS 4 DE MENOR PESO. EL
RESULTADO SE ALMACENA EN F SI D=1 Y EN
W SI D=0
SWAPF F, D EJEMPLO:
VARIABLE = 01110001 1
SWAPF VARIABLE,1
VARIABLE = 00010111
W NO SE VE AFECTADO

HACE UNA XOR ENTRE W Y F .EL RESULTADO


LO ALMACENA EN F SI D=0 O A F SI D=1
EJEMPLO:
SI W = 11100011
XORWF F, D TEMP = 11111000
XORWF TEMP,0 1 Z
W= 00011011
TEMP = 11111000
XORWF TEMP,1
W= 00011011
TEMP = 11100011
INSTRUCCIONES ORIENTADAS A BITS
BANDERAS DE STATUS
INSTRUCCIN EXPLICACIN CICLOS
AFECTADAS
CARGA CON CERO EL BIT B DEL
REGISTRO F
EJEMPLO:
BCF F, B
PUERTOB = 11100011
BCF PORTB,7 1
PUERTOB = 01100011

CARGA CON UNO EL BIT B DEL


BSF F, B REGISTRO F
EJEMPLO:
1
PUERTOB = 11100011
BSF PORTB,3
PUERTOB = 11101011
CHEQUEA EL BIT B DEL REGISTRO
F Y SALTA UNA INSTRUCCIN SI
ES CERO
EJEMPLO:
SEA PORTA = 11110000
BTFSC F, B BTFSC PORTA,3
INSTRUCCIN 1 1
INSTRUCCIN 2
EL PROGRAMA EJECUTARA LA
INSTRUCCIN 2 PUES LUEGO
DE CHEQUEA EL BIT 3 DETECTA
QUE ES CERO Y POR ESO SALTA
UNA INSTRUCCIN
CHEQUEA EL BIT B DEL REGISTRO
F Y SALTA UNA INSTRUCCIN SI
ES UNO
EJEMPLO:
SEA PORTA = 11110000
BTFSS PORTA,3
INSTRUCCIN 1
BTFSS F, B INSTRUCCIN 2
EL PROGRAMA EJECUTARA LA 1
INSTRUCCIN 1 PUES LUEGO
DE CHEQUEA EL BIT 3 DETECTA
QUE ES CERO Y ESTA
INSTRUCCIN A DIFERENCIA DE
LA ANTERIOR, SALTA SI EL BIT
CHEQUEADO ES UNO.

INSTRUCCIONES ORIENTADAS LITERALES Y CONTROL


BANDERAS DE STATUS
INSTRUCCIN EXPLICACIN CICLOS
AFECTADAS
SUMA K CON W Y EL
RESULTADO LO ALMACENA
ADDLW K EN W
EJEMPLO: 1 C, DC, Z
W = 29
ADDLW D5
W = 35 (SE SUMA 29 + 5)
HACE UNA AND ENTRE K Y W.
EL RESULTADO LO
ANDLW K ALMACENA EN W
EJEMPLO: 1 Z
W = 11111100
ANDLW B00011111
W = 00011100
CALL K LLAMADA A SUBRUTINA EN
LA DIRECCIN K DE LA 2
FLASH
CLRWDT
LIMPIA EL PERRO GUARDIN 1 #TO, #PD

GOTO K
SALTO INCONDICIONAL A LA
2
DIRECCIN K DE LA FLASH

HACE UNA OR ENTRE K Y W.


EL RESULTADO LO
IORLW K ALMACENA EN W
EJEMPLO: 1 Z
W = 11111100
IORLW B00011111
W = 11111111
CARGA W CON EL VALOR DE
MOVLW K K
SI W = 79 1
MOVLW D25
W = 25
RETORNA DE UNA
INTERRUPCIN,
RECUPERANDO PARA SU
RETFIE RETORNO, LA ULTIMA
DIRECCIN ALMACENADA EN 2
LA PILA Y HABILITA
NUEVAMENTE LAS
INTERRUPCIONES (GIE SE
CARGA CON UNO)
RETORNA DE LA SUBRUTINA
RETLW K A LA ULTIMA DIRECCIN
ALMACENADA EN LA PILA Y 2
ADEMS RETORNA CON UN
VALOR K EN W
RETURN RETORNA DE LA SUBRUTINA
A LA ULTIMA DIRECCIN 2
ALMACENADA EN LA PILA
MODO DE BAJO CONSUMO.
SLEEP EL PROGRAMA ES SACADO
DE ESTE ESTADO MEDIANTE 1 #TO, #PD
RESET O MEDIANTE UNA
INTERRUPCIN
RESTA EN COMPLEMENTO A
DOS K-W. EL RESULTADO LO
SUBLW K ALMACENA EN W
EJEMPLO: 1 C, DC, Z
W = 23
ANDLW D53
W = 30
HACE UNA XOR ENTRE K Y W.
EL RESULTADO LO
XORLW K ALMACENA EN W
EJEMPLO: 1 Z
W = 11111100
XORLW B00011111
W = 11100011

También podría gustarte