Sie sind auf Seite 1von 14

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

ESCUELA DE INGENIERIA ELECTRONICA EN CONTROL DDE REDES INDUSTRIALES


MICROCONTROLADORES Tema: INSTRUCCIONES RISC

NOMBRE: Richard Chalan COD:97 Periodo Septiembre 2013-Febrero 2013

Instrucciones orientadas a registros MNEMNICO OPERANDOS ADDWF f,d ANDWF f,d CLRF CLRW COMF DECF f f,d f,d DESCRIPCIN w+fd w AND f d 00 h f 00 h w Complemento de f d f-1d f - 1 d (si es 0 salta) f+1d f + 1 d (si es 0 salta) w OR f d fd wf No operacin Rota f izq por carry d Rota f dcha por carry d f-wd CDIGO OP
00 0111 dfff ffff 00 0101 dfff ffff 00 0001 1fff ffff 00 0001 0xxx xxxx 00 1001 dfff ffff 00 0011 dfff ffff 00 1011 dfff ffff 00 1010 dfff ffff 00 1111 dfff ffff 00 0100 dfff ffff 00 1000 dfff ffff 00 0000 1fff ffff 00 0000 0xx0 0000 00 1101 dfff ffff 00 1100 dfff ffff 00 0010 dfff ffff

BANDERAS NCIC C, DC, Z Z Z Z Z Z Ninguna Z Ninguna Z Z Ninguna Ninguna C C C,DC,Z 1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 1 1 1

NOT AS 1,2 1,2 2 1,2 1,2 1,2,3 1,2 1,2,3 1,2 1,2 1,2 1,2 1,2 1,2 1,2

DECFSZ f,d INCF f,d

INCFSZ f,d IORWF f,d MOVF f,d

MOVWF f NOP RLF RRF f,d f,d

SUBWF f,d SWAPF f,d

Intercambia nibbles de f d 00 1110 dfff ffff Ninguna w XOR f d


00 0110 dfff ffff

XORWF f,d

Instrucciones con literales y de control MNEMNICO OPERANDOS ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW DESCRIPCIN CDIGO OP
11 111x kkkk kkkk 11 1001 kkkk kkkk 10 0kkk kkkk kkkk 00 0000 0110 0100 10 1kkk kkkk kkkk 11 1000 kkkk kkkk 11 00xx kkkk kkkk 00 0000 0000 1001 11 01xx kkkk kkkk 00 0000 0000 1000 00 0000 0110 0011 11 110x kkkk kkkk 11 1010 kkkk kkkk

BANDERAS NCIC NOTAS C,DC,Z Z Ninguna TO,PD Ninguna Z Ninguna Ninguna Ninguna Ninguna TO, PD C,DC,Z Z 1 1 2 1 2 1 1 2 2 2 1 1 1 -

k w+kw k w AND k w k Llamada a subrutina k - Borra temporizador del WDT k Ir a direccin k k w OR k w k kw - Retorno de una interrupcin k Retorno con k en w - Retorno de una subrutina - Modo Standby k k-ww k w XOR k w

Instrucciones orientadas a bit MNEMNICO OPERANDOS BCF BSF BTFSC BTFSS f,b f,b f,b f,b DESCRIPCIN Pone a 0 bit b de registro f Pone a 1 bit b de registro f CDIGO OP
01 00bb bfff ffff

BANDERAS NCIC Ninguna Ninguna Ninguna Ninguna 1 1 1(2) 1(2)

NOT AS 1,2 1,2 3 3

01 01bb bfff ffff

Salto si bit b de reg. f 01 10bb bfff ffff es 0 Salto si bit b de reg. f 01 11bb bfff ffff es 1

EJEMPLOS: ADDWF: Suma W y f Suma el contenido del registro 'W' y el registro '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'. ADDWF FSR,0

Si antes de la instruccin. w = 17 h y FSR = C2 h como d=0 Al ejecutarse: w = 17 h + C2 h = D9 h FSR = C2 h 0001 0111 b 1100 0010 b 1101 1001 b

ANDWF: W AND f Realiza la operacin lgica AND entre el registro W y el registro "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". ANDLW 0x5F

Si antes de la instruccin. w = A3 h Al ejecutarse: w = 0101 1111 b AND 1010 0011 b = 0000 0011 b = 03 h 0101 1111 b 1010 0011 b 0000 0011 b CLRF: Borra un registro Borra el contenido del registro 'f' y se activa el flag Z. CLRF REG

Si antes de la instruccin: REG = 5A h Al ejecutarse: REG = 00 h flag Z = 1

CLRW: Borra el registro de trabajo W Borra el contenido del registro 'W' y se activa el flag Z. Esta instruccin no tiene operandos. CLRW Si antes de la instruccin. w= 5Ah Al ejecutarse:

w = 00

flag Z = 1

COMF: Complementa el registro f El contenido del registro 'f' se complementa. Si d=0 el resultado se almacena en el registro W. Si d=1 el resultado se almacena en el registro 'f'. COMF REG1,0 Si antes de la instruccin: REG1 = 13 h como d= 0 Al ejecutarse: REG1 = 13 h = 0001 0011 b w = EC h = 1110 1100 b 0001 0011 b 1110 1100 b DECF: Decrementa f en 1 De decrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en W. Si d=1, el resultado se almacena en 'f'. DECF CNT,1 flag Z = 0

Si antes de la instruccin: CNT = 01 h Al ejecutarse: CNT = 00 h bit Z = 1 DECFSZ: Decrementa en 1 y salta si el resultado es 0: El contenido del registro 'f' se decrementa. Si 'd=0, el resultado se coloca en el registro W. Si d=1, el resultado se coloca en el registro 'f'. Si el resultado es 0, se salta la siguiente instruccin y se contina con la ejecucin. Z=0

INICIO CONTINUAR

DECFSZ GOTO LOOP

CNT,1

si antes de la instruccin: PC = direccin INICIO Al ejecutarse: CNT = CNT -1 Si CNT = 0 entonces PC = direccin CONTINUAR Si CNT no = 0 entonces PC = direccin INICIO + 1 INCF: Incrementa el registro f.Incrementa en uno el contenido del registro 'f'. Si d=0, el resultado se almacena en W. Si d=1, el resultado se almacena en 'f'. INCF CNT,1

Si antes de la instruccin: CNT = FF h Al ejecutarse: FF h + 1 h = 00 h CNT = 00 flag Z = 1 flag Z = 0

INCFSZ: Incrementa en 1 y salta si el resultado es 0: El contenido del registro 'f' se incrementa. Si d=0, el resultado se coloca en el registro W. Si d=1, el resultado se coloca en el registro 'f'. Si el resultado es 0, se salta la siguiente instruccin y se contina con la ejecucin INICIO INCFSZ CNT,1 GOTO SALTO CONTINUAR Si antes de la instruccin: PC = direccin INICIO Al ejecutarse: CNT = CNT+1

Si CNT = 0 Entonces PC = direccin CONTINUAR Si CNT no = 0 Entonces PC = direccin INICIO + 1 IORWF: W OR f: Realiza la operacin lgica OR entre el registro W y el registro 'f'. Si d=0 el resultado se almacena en el registro W. Si d=1, el resultado se almacen en el registro 'f'. IORWF RESUL,0 Si antes de la instruccin RESUL = 13 h = 0001 0011 b w = 91 h = 1001 0001 b Al ejecutarse: RESUL= 0001 0011 b OR 1001 0001 b = 1001 0011 b = 93 h 0001 0011 b 1001 0001 b 1001 0011 b MOVF: Mover el registro f:El contenido del registro 'f' se mueve al destino 'd'. Si d=0, el destino es el registro W. Si d=1, el destino es el propio registro 'f'. MOVF FSR,0 Al ejecutarse: w = al valor del FSR RLF: Rota el registro f a la izquierda:El contenido del registro 'f' se rota una posicin a la izquierda. El bit de ms peso pasa al carry y el carry se introduce por el bit de menos peso de 'f'. Si d=0, el resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'.

Si tenemos el registro VALOR = 0000 0001 b y aplicamos la instruccin RLF VALOR,1 Entonces el resultado ser VALOR = 0000 0010 b y el bit C = 0. RRF: Rota el registro f a la derecha:El contenido del registro 'f' se rota una posicin a la derecha. El bit de menos peso pasa al carry y el carry se introduce por el bit de ms peso de 'f'. Si d=0, el resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'. REG1 = 1110 0110 b y flag C = 1 RRF REG1,0, como d = 0 el resultado queda en w, al ejecutarse: REG1 = 1110 0110 b w = 0111 0011 b flag C = 0 SUBWF: Resta f W:Resta el contenido del registro 'f' menos el contenido del registro W. Si d=0, el resultado se almacena en el registro W. Si d=1, el resultado se almacena en el registro 'f'. SUBWF REG,1 Antes de la instruccin: REG=0x01, W=0x02 Despus de la instruccin: REG=0xFF, W=0x02 SWAPF: Intercambio de f:El nibble bajo del registro 'f' se intercambia con el nibble alto del mismo. Si d=0, el resultado se coloca en el registro W. Si d=1, el resultado queda en el registro 'f'. SWAPF REG1,0 Si antes de la instruccin: REG1 = A5 h = 1010 0101 h Como d=0 el resultado se almacenar en w Al ejecutarse la instruccin: REG1 = A5 h = 1010 0101 b w = 5A h = 0101 1010 b

XORWF: W XOR f.Realiza la funcin lgica OR exclusiva entre el contenido del registro W y el registro 'f'. Si d=0, el resultado se almacena en el registro W. Si d=1 el resultado se almacena en el registro 'f'. XORWF REG,1 antes de la instruccin: REG=0xAF, W=0xB5 Despus de la instruccin: REG=0x1A, W=0xB5 BCF: Borra un bit:Borra el bit 'b'del registro 'f' BCF REG,0 Antes de la instruccin: REG=b'01101101' Despus de la instruccin: REG=b'01101100' BSF: Activa un bit:Activa el bit 'b' del registro 'f' BSF REG,2 Antes de la instruccin: REG=b'01001001' Despus de la instruccin: REG=b'01001011'

ANDLW: W AND literal:Realiza la operacin lgica AND entre el registro W y la constante "k". El resultado se almacena en el registro W. ANDLW 0x5F

Si antes de la instruccin. w = A3 h Al ejecutarse: w = 0101 1111 b AND 1010 0011 b = 0000 0011 b = 03 h 0101 1111 b 1010 0011 b 0000 0011 b CALL: Llamada a subrutina:Llamada y salto a subrutina. La direccin de retorno se guarda en el stack. La constante "k" de 8 bits forma la direccin de

salto y se carga en los bits del PC. Los bits del PC se cargan con los bits del registro "STATUS". PC se pone a 0. INICIO CALL DESTINO Antes de la instruccin: PC=INICIO Despus de la instruccin: PC=DESTINO CLRWDT: Borra el watchdog timer:Esta instruccin borra tanto el "watchdog" como el prescaler. Los bits TO y PD del registro de estado se ponen a "1". GOTO: Salto incondicional:Se trata de un salto incondicional. Los 9 bits de la constante "k" que forman la instruccin, se cargan en los bits del PC y forman la direccin de salto. Los bits del PC se cargan con los bits del registro de estado. INICIO GOTO DESTINO Antes de la instruccin: PC=0 Despus de la instruccin: PC=DESTINO IORLW: W OR literal:Se realiza la funcin lgica OR entre el registro W y la contante "k". El resultado se almacena en el registro W. IORLW 0x35 Si antes de la instruccin: w = 9A h Al ejecutarse: w = 1001 1010 b + 0011 0101 b = 1011 1111 b = BF h 1001 1010 b 0011 0101 b 1011 1111 b MOVLW: Carga un literal en W: El registro W se carga con el valor de 8 bits expresado mediante la literal "k".

MOVLW Al ejecutarse:

0x5A w = 5A h

RETURN: Regresa de una subrutina RETURN RETLW: Regresa de una subrutina y carga el valor K en W: El programa regresa de la subrutina y carga el valor de 8 bits del registro k en el registro W RETLW,0x45 Antes de la instruccion: W=xx Despues de la instruccion: W=0x45

SLEEP: Entra en estado de reposo Sleep; XORLW: W XOR literal:Realiza la funcin lgica OR exclusiva entre el contenido del registro W y la constante "k" de 8 bits. El resultado se almacena en el registro W. XORLW0xAF Si antes de la instruccin: w = 1011 0101 b = B5 h Al ejecutarse la instruccin: w = 1011 0101 b 1010 1111 b = 0001 1010 b = 1A h 1011 0101 b 1010 1111 b 0001 1010 b SUBLW: Resta L W:A una constante "k" de 8 bits se le resta el registro W. El resultado es guardado en el mismo registro W.

MOVWF: Mover el valor del registro W al registro f El contenido del registro W se mueve al registro f. MOVWF OPCION

Si antes de la instruccin: OPCION = FF h Al ejecutarse: OPCION = 4F h w = 4F h w = 4F h

WEBGRAFIA http://perso.wanadoo.es/pictob/instrucciones.htm http://www.circuitoselectronicos.org/2011/02/conjunto-de-instruccionespara-los.html

Das könnte Ihnen auch gefallen