Está en la página 1de 8

ADDLW Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

Suma un valor literal al contenido del registro W ADDLW k (W) + k --->(W) 1 C, DC, Z ADDLW 15 Antes de la instruccin: W=10 Despues de la instruccin: W=25 Suma el contenido de un registro al contenido del registro W ADDWF f,d (W) + f --->(d) 1 C, DC, Z ADDWF FSR,0 Antes de la instruccin: W=17 Despues de la instruccin: W=D9

ADDWF Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

d=0 ----> W d=1 ----> f

FSR=C2 FSR=C2

ANDLW Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

Operacin lgica AND entre un literal y el registro W ANDLW (W) AND (k) --->(W) 1 Z ANDLW 5F Antes de la instruccin: W=A3 Despues de la instruccin: W=03 Operacin lgica AND entre un registro "f" y el registro W ANDWF f,d (W) AND (f) --->(W) 1 Z ANDLW 5F Antes de la instruccin: W=A3 Despues de la instruccin: W=03 Pone en cero el bit "b" del registro "f" BCF f,b 0 ---->(f<b>) 1

ANDWF Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

d=0 ----> W d=1 ----> f

BCF Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

BCF regis,7

Antes de la instruccin: regis= C7 Despues de la instruccin: regis = 47 BSF Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo: BSF f,b 1 ---->(f<b>) 1 Pone en uno el bit "b" del registro "f"

BSF regis,7 Antes de la instruccin: regis= 0A Despues de la instruccin: regis = 8A Prueba el bit "b" del registro "f" y salta una linea si esta es cero BTFSC f,b Salta si (f<b>) = 0 1(2)

BTFSC Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

aqu BTFSC regis,0 FALSO GOTO inicio verdad . Antes de la instruccin: PC = aqu Despues de la instruccin: si el bit 0 del registro regis = 0 ---> PC = verdad si el bit 0 del registro regis <> 0 ---> PC = falso Prueba el bit "b" del registro "f" y salta una linea si esta es uno BTFSS f,b Salta si (f<b>) = 1 1(2)

BTFSS Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

aqu BTFSC regis,0 FALSO GOTO inicio verdad . Antes de la instruccin: PC = aqu Despues de la instruccin: si el bit 0 del registro regis = 1 ---> PC = verdad si el bit 0 del registro regis <> 1 ---> PC = falso Llama una subrutina que esta ubicada en la posicin de memoria o etiqueta "k" CALL k (PC) + 1 --->pila, k ---> PC 1

CALL Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

aqu CALL rutina Antes de la instruccin: PC = aqu Despues de la instruccin: PC = rutina

Pila = aqu + 1 CLRF Sintaxis Operacin Ciclos de instruccin Estados afectados Ejemplo: Borra el contenido del registro "f", lo carga con 00 CLRF f 00 ----> (f) 1 Z CLRF regis Antes de la instruccin: regis = 5A Despues de la instruccin: regis = 00 Borra el contenido del registro W, lo carga con 00 CLRW 00 ----> W 1

CLRW Sintaxis Operacin Ciclos de instruccin Estados afectados Ejemplo:

CLRW Antes de la instruccin: Despues de la instruccin:

W = 5A W = 00

CLRWDT Sintaxis Operacin Ciclos de instruccin Estados afectados Ejemplo: CLRWDT 00 ----> WDT 1 TO, PD

Borra el conteo del Watchdog timer

CLRWDT Antes de la instruccin: Despues de la instruccin:

WDT = ? WDT = 00

COMF Sintaxis Operacin Ciclos de instruccin Estados afectados Ejemplo: COMF f,d (f) ---->(d) 1 Z

Complementa el contenido del registro "f"

d=0 ----> W d=1 ----> f

COMF regis,0 Antes de la instruccin: regis = 13, W = ? Despues de la instruccin: regis = 13, W = EC Decrementa el contenido del registro "f" DECF f,d (f) - 1 ---->(d) 1 Z

DECF Sintaxis Operacin Ciclos de instruccin Estados afectados

d=0 ----> W d=1 ----> f

Ejemplo:

DECF regis,1 Antes de la instruccin: Despues de la instruccin:

regis = 13 regis = 12

DECFSZ

Decrementa el contenido del registro "f"; si el contenido queda en 00, salta una lnea DECFSZ f,d (f) - 1 ---->(d), salta si es cero 1(2)

Sintaxis Operacin Ciclos de instruccin Estados afectados Ejemplo:

d=0 ----> W d=1 ----> f

aqu continua Antes de la instruccin: Despues de la instruccin:

DECFSZ regis,1 GOTO ciclo PC = aqu regis = regis - 1 Si regis = 0 ---> PC = continua Si regis <> 0 ---> PC = aqu + 1

GOTO Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

El contador de programa (PC) salta a la direccin "k" GOTO k k ----> PC 2

Antes de la instruccin: Despues de la instruccin: INCF Sintaxis Operacin Ciclos de instruccin Estados afectados Ejemplo: DECF f,d (f) + 1 ---->(d) 1 Z

GOTO PC = ? PC = ciclo

ciclo

Incrementa el contenido del registro "f"

d=0 ----> W d=1 ----> f

INCF regis,1 Antes de la instruccin: Despues de la instruccin:

regis = 24 regis = 25

INCFSZ

Incrementa el contenido del registro "f"; si el contenido queda en 00, salta una lnea INCFSZ f,d (f) + 1 ---->(d), salta si es cero 1(2)

Sintaxis Operacin Ciclos de instruccin Estados afectados Ejemplo:

d=0 ----> W d=1 ----> f

aqu

INCFSZ

regis,1

continua Antes de la instruccin: Despues de la instruccin:

GOTO ciclo PC = aqu regis = regis + 1 Si regis = 0 ---> PC = continua Si regis <> 0 ---> PC = aqu + 1

IORLW Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

Operacin lgica AND entre el registro W y un literal "k" IORLW k (W) OR (k) --->(W) 1 Z IORLW 35 Antes de la instruccin: W=9A Despues de la instruccin: W=BF Operacin lgica OR entre el registro W y un registro "f" IORWF f,d (W) OR (f) --->(W) 1 Z IORWF regis,0 Antes de la instruccin: regis = 13, W=91 Despues de la instruccin: regis = 13, W=93 Carga el registro W con el literal "k" MOVLW k k ----> (W) 1 Z MOVLW 5A Antes de la instruccin: W= ? Despues de la instruccin: regis W = 5A Mueve el contenido del registro "f" MOVF f,d (f) ----> (d) 1 Z MOVF regis, 0 Antes de la instruccin: regis = 03, W= ? Despues de la instruccin: regis = 03, W = 03 Mueve el contenido del registro W al registro "f"

IORWF Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

d=0 ----> W d=1 ----> f

MOVLW Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

MOVF Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

MOVWF

Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

MOVWF f (W) ----> (f) 1

MOVWF OPTION Antes de la instruccin: OPTION = ?, W= 48 Despues de la instruccin: OPTION = 48, W = 48 No realiza operacin NOP k ----> (W) 1

NOP Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo: OPTION Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo: RETFIE Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo: RETFIE pila --->PC 2

NOP Carga el registro de Opciones con el contenido del registro W OPTION (W) ----> OPTION 1

OPTION Retorno del llamado de interrupcin

RETFIE Antes de la instruccin: PC = ? Despues de la instruccin: PC = pila Retorno de interrupcin y carga el registro W con el literal "k" RETLW pila --->PC 2

RETLW Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

tabla

CALL . . ADDWF RETLW RETLW

Tabla

PC k1 k2

. . RETLW Antes de la instruccin: W = 07 Despues de la instruccin: PC = k7 RETURN Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo: RETURN pila --->PC 2

. . k7

Retorno desde subrutina

RETURN Antes de la instruccin: PC = ? Despues de la instruccin: PC = pila Rote el contenido del registro "f" a la izquierda, usando el carry RLF f,d 1 C RLF regis, 0 Antes de la instruccin: C = 0, W = ?, regis = 11100110 Antes de la instruccin: C = 1, W = 11001100, regis = 11100110 Rote el contenido del registro "f" a la derecha, usando el carry RLF f,d 1 C RRF regis, 0 Antes de la instruccin: C = 0, W = ?, regis = 11100110 Antes de la instruccin: C = 1, W = 01110011, regis = 11100110 Entra en modo dormido (Standby) SLEEP 00 --->WDT, 1 --->TO, 0 --->PD 1 TO, PD SLEEP

RLF Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

RRF Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

SLEEP Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

SUBLW

Resta el contenido del registro W de el literal "k" (usando complemento a 2)

Sintaxis Operacin Ciclos de instruccin Registros afectados Ejemplo:

SUBLW k - (W) ----> (W) 1 C, DC, Z MOVWF OPTION Antes de la instruccin: OPTION = ?, W= 48 Despues de la instruccin: OPTION = 48, W = 48

También podría gustarte