Instrucciones RISC

Embed Size (px)

Citation preview

  • 9.1. REPERTORIO RISC

    Todos los modelos de microcontroladores PIC responden a la arquitectura RISC, que signifi-ca Computador de Juego de Instrucciones Reducido. No slo implica que el nmero deinstrucciones mquina que es capaz de interpretar y ejecutar el procesador es pequeo, comosucede en los PIC16X8X, que consta de 35, sino tambin que posee las siguientes caracters-ticas:

    La falta de complejidad en la operacin que realizan las instrucciones de los procesa-dores RISC permite que sean ejecutadas, mayoritariamente, en un solo ciclo de ins-truccin. Los PIC tardan en ejecutar todas las instrucciones un ciclo, excepto las desalto, que tardan el doble.

    Apenas tienen restricciones en el uso de operandos. Cualquier instruccin puede usarcualquier operando.

    Todas las instrucciones tienen la misma longitud, 14 bits en los PIC16X8X, y todoslos datos tambin, un byte. La arquitectura Harvard del procesador asla la memoria deinstrucciones de la de datos, pudiendo tener sus palabras diferente tamao.

    125

  • 126

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    9.2. TIPOS DE FORMATO

    Las instrucciones de los PIC de la gama media, entre los que se encuentran los modelosPIC 16X8X, tienen 14 bits de longitud. Dicho formato se divide en diferentes campos de bits,cada uno de los cuales referencia a operandos o elementos que maneja la instruccin en la ope-racin que realiza en el procesador. Se describen dichos campos:

    Los bits de este campo sirven para definir la operacin que realiza la instruccin.

    Estos campos de bits definen los registros que actan como operandos en la instruc-cin. Suelen referenciar la direccin que ocupan en la memoria de datos.

    En las instrucciones de salto CALL y GOTO hay un campo de bits que contiene la di-reccin de la siguiente instruccin que hay que ejecutar. Dicho campo de bits se cargaen el PC en las instrucciones de salto incondicional.

    Para estudiar los diversos formatos que admiten las instrucciones del repertorio de losPIC 16X8X se clasifican en cinco grandes grupos, atendiendo al tipo de operacin que desa-rrollan.

    Es un campo de bits que contiene el valor de un operando inmediato.

    Suele ser un campo de 3 bits que indica la posicin de un bit concreto dentro de un re-gistro de 8 bits.

  • 9.2.1.

    Operaciones orientadas a manejar registros de tamao byte

    Las instrucciones de este grupo tienen como sintaxis: nemnico fd. Cuando d = 1 el regis-tro destino coincide con el fuente. Por ejemplo, si se desea incrementar el contenido de un re-gistro, reg1, y guardar el nuevo valor en el mismo, se usa la instruccin inc reg1,1.

    MANEJANDO EL REPERTORIO DE INSTRUCCIONES

    127

  • 128

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    9.2.2.

    Operaciones orientadas a manejar bits

  • 9.2.3.

    Operaciones que manejan un valor inmediato o literal

    9.2.4.

    Operaciones incondicionales de control de flujo del programaEste tipo de instrucciones afectan al contenido del Contador de Programa (PC) y sirven pararomper la secuencia ordenada de las instrucciones del programa. Las instrucciones de este gru-po tienen un formato con slo dos campos:

    1.

    Campo del Cdigo OP de 3 bits.2.

    Campo de la direccin del salto que se carga en el PC de 11 bits.

    9.2.5.

    Operaciones de salto condicionalLos PIC disponen de unas pocas instrucciones muy efectivas que cuando se cumple unacondicin dan un brinco (skip). Llamamos brinco a un saltito muy pequeo, concretamente slose salta una instruccin, la que hay detrs de la condicional. La condicin es el estado de un bitde un registro o la puesta a cero de un registro tras un decremento o un incremento.

    La instruccin decfsz fd responde al grupo de instrucciones que manejan registros de un byte.En este caso, si d = 1, el destino es el propio registro fuente y lo que hace la instruccin es decre-

    MANEJANDO EL REPERTORIO DE INSTRUCCIONES

    129

  • 130

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    mentar el contenido de f y dejar el resultado en f. Pero, adems, si el nuevo valor defes cero seproduce un brinco. Si no es cero el flujo de control contina con la siguiente instruccin.

    9.3. PRECISIONES SOBRE NOMENCLATURA Y SMBOLOSHemos tomado la decisin de utilizar la nomenclatura y los smbolos que emplea MICRO-CHIP para su lenguaje Ensamblador MPASM. Recordamos los ms especficos.

  • MANEJANDO EL REPERTORIO DE INSTRUCCIONES

    131

  • 132

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    9.4. INSTRUCCIONES QUE MANEJAN REGISTROS

    Responden a la sintaxis nemnico f d, siendo f y d los dos operandos fuente y destino que sehallan implementados por registros de 8 bits de la memoria de datos.

    El registrof viene referenciado por la direccin de 7 bits que ocupa, mientras que el desti-no slo por uno, que si vale 0 es el W y si vale 1 es el fuente. En la Tabla 9.1 se muestran lasinstrucciones de este grupo con sus caractersticas ms interesantes.

  • MANEJANDO EL REPERTORIO DE INSTRUCCIONES

    133

    9.5. INSTRUCCIONES QUE MANEJAN BITSSlo hay dos instrucciones en este grupo, pero son muy flexibles. Una de ellas pone a 1 (bsf)cualquier bit de un registro, mientras que la otra lo pone a 0 (bcf) (vase Tabla 9.2).

  • 134

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    9.6. INSTRUCCIONES DE BRINCO (SKIP)

    Slo hay cuatro instrucciones de salto condicional en los PIC de la gama media. Dos de ellastestan un bit de un registro y segn valga 1 o 0, brincan o no. Recurdese que un brinco es unsaltito pequeo, slo se salta la instruccin siguiente a la condicional. Las otras dos ins-trucciones incrementan o decrementan un registro y la posibilidad del brinco se efecta si conesa operacin el valor del registro ha llegado a cero. Cuando estas instrucciones no brincanporque no se cumple la condicin, tardan 1 ciclo de instruccin en ejecutarse. En caso de quebrinquen, tardan el doble (vase Tabla 9.3).

  • 9.7. INSTRUCCIONES QUE MANEJAN OPERANDOS INMEDIATOSSe trata de media docena de instrucciones que realizan una operacin con un valor inmediatode 8 bits que se proporciona dentro del formato de la instruccin, el cual slo tiene dos cam-pos: el del Cdigo OP (6 bits) y el del operando inmediato (8 bits) (Tabla 9.4).

    MANEJANDO EL REPERTORIO DE INSTRUCCIONES

    135

  • 9.7. INSTRUCCIONES QUE MANEJAN OPERANDOS INMEDIATOS

    Se trata de media docena de instrucciones que realizan una operacin con un valor inmediatode 8 bits que se proporciona dentro del formato de la instruccin, el cual slo tiene dos cam-pos: el del Cdigo OP (6 bits) y el del operando inmediato (8 bits) (Tabla 9.4).

    MANEJANDO EL REPERTORIO DE INSTRUCCIONES

    135

  • 136

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

    9.8. INSTRUCCIONES DE CONTROL Y ESPECIALES

    En este grupo se incluyen las instrucciones que rompen la secuencia normal del programa por-que alteran el contenido del PC y tambin las instrucciones especiales.

    La instruccin de salto incondicional goto carga en el PC la direccin de la nueva instruc-cin. La instruccin call de Llamada a Subrutina, antes de cargar el PC con la direccin de lai nstruccin a saltar, salva la direccin de partida guardando en la cima de la Pila el valor actualdel PC. De esta manera, al retornar de la subrutina se saca de la Pila la direccin de regresoen el programa principal.

    Para realizar un retorno de una subrutina se pueden emplear dos instrucciones. La ms ha-bitual es return, que se limita a extraer de la cima de la Pila el valor que carga en el PC. Otrams compleja es retlw k, que, adems de hacer lo mismo que return, carga en W el valor in-mediato k que contiene. Es decir, devuelve un parmetro desde la subrutina.

    Para el final de las interrupciones hay otra instruccin cuyo nemnico es retfie. La opera-tividad de esta instruccin consiste en cargar en el PC el contenido de la cima de la Pila y po-ner el bit GIE = 1, pues al comenzar la interrupcin este bit se pone automticamente a 0 paraevitar que cuando se atiende una interrupcin se produzca otra. GIE es el bit de permiso detodas las interrupciones.

    En cuanto a las instrucciones especiales, se han incluido dos en este grupo: clrwdt y sleep. Laprimera pone a 0 el contenido del Perro Guardin, es decir, lo refresca o lo reinicializa. El PerroGuardin si se desborda (pasa de Oxff a 0x00) provoca un Reset. La instruccin clrwdt hay quecolocarla estratgicamente en ciertos puntos del programa para evitar la reinicializacin.

  • La instruccin sleep introduce al procesador en un modo de funcionamiento que se llamade Reposo o de Bajo Consumo. Detiene el oscilador y el procesador queda congelado, no eje-cutando instrucciones y manteniendo el mismo valor las Puertas de E/S. Tambin pone los bitsPD# = 0 y TO# = 1 y borra al Perro Guardin y al Divisor de frecuencia (Tabla 9.5).

    En la Tabla 9.6 se presentan las principales caractersticas de las 35 instrucciones de losPIC de la gama media, agrupadas por funciones, tal como se han descrito.

    MANEJANDO EL REPERTORIO DE INSTRUCCIONES

    137

  • 138

    MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES