CAPITULO 12_SIST DIGITALES

5
 INSTITUTO TECNOLOGICO SUPERIOR SUDAMERICANO. CAP. 12 REPERTORIO DE INSTRUCCIONES MAQUINA 1 CAPITULO 12. REPERTORIO DE INSTRUCCIONES MAQUINA Paola Lizzet Esparza Godoy [email protected]  RESUMEN: el siguiente documento se da a conocer la forma correcta de utilizar las instruccione s máquina dentro de lo que es la programación de los DsPic. PALABRAS CLAVE: ejecutar, instrucciones, programa, registros.  INTRODUCCIÓN Consta de un total de 84 instrucciones. Las de propósito general (instrucciones MCU), y la que permiten hacer operaciones matemáticas complejas (instrucciones DSP). Las instrucciones de los dsPIC30F tienen una longitud de 25 bits Excepto tres que son: CALL, DO, GOTO, requieren dos posiciones de memoria. La mayoría de las instrucciones se ejecutan en un ciclo de instrucciones (4T osc) con las siguientes excepciones: 1. DO, MOV.D, POP.D, PUSH.D, TBLRDH, BLRDL, TBLWTH Y TBLWTL necesitan dos ciclos de instrucciones para ejecutarse. 2. DIV.S, DIV.U, DIVF precedidas por la instrucción REPEAT#17, que supone su ejecución 18 veces y dura 18 ciclos de instrucción. 3. La instrucción que cambia el Contador de Programa necesita dos ciclos en su ejecución, siendo ejecutada como NOP los dos ciclos extra. 4. SKIP (brinco) salta una instrucción compuesta por 2 palabras de memoria requiere tres ciclos de instrucción, se ejecutan 2 NOP de los ciclos extra. 5. Las instrucciones RETFIE, RETLW y RETURN caso especial del modificador de programa, se ejecutan en tres ciclos de instrucción. 6. Las instrucciones que acceden a la me moria de programa para manejar datos utilizando la visibilidad del Espacio de Programa precisan uno o dos ciclos de retardo 1. FORMATO De los tres bytes que conforman una instrucción 1. El primero se destina al código OP 2. Los dos restantes sirven pa ra determinar los operandos y las características especiales con las que se desarrollan especiales con las que se desarrolla la ejecución de la instrucción El código OP se aplica al primer byte de cada instrucción (el código OP significa mover un byte de datos al acumulador desde un registro). Para mayor explicación a continuación se muestra dos ejemplos de instrucciones aplicado el código OP. } CLRWDT sirve para refrescar al perro guardián (pone en cero WDT), los 16 bits de menos peso contiene un valor concreto. } COM se destina a complementar el registro o posición de la memoria de datos (f) } COM afecta como operando fuente al registro de trabajo Ws y deposita el resultado en Wd. Complementa a 1 el contenido de Ws y deposita el resultado en Wd también ocupa 24 bits, se ejecuta en un ciclo de instrucción y afecta a los señalizadotes N y Z. 2. MODOS DE DIRECCIONAMIENTO DE LA MEMORIA DE DATOS Son los procedimientos que se usan en las instrucciones para determinar el valor de los operandos. Existen cuatro modos de direccionamiento principales para acceder a la memoria de datos : 1. Direccionamiento directo a memoria: dirección de la memoria de datos en la que se almacena el operando. 2. Direccionamiento directo por registros : el operando reside en uno delos registros de trabajo (W0-W15). 3. Direccionamiento indirecto por registros : los registros de trabajo contienen la dirección efectiva de la me moria de datos donde se halla el operando. 4. Direccionamiento inmediato: el valor del operando en el código de la propia instrucción. 2.1 Modo de Direccionamiento Directo a Memoria Usan instrucciones que manejan los operandos que se han colocado en la memoria de datos Manejan los 8 KB inferiores dela memoria de datos (RAM cercana) La instrucción MOV pueden acceder a los 64 KB de la memoria, permite cargar cualquier posición desde un registro de trabajo y viceversa.

Transcript of CAPITULO 12_SIST DIGITALES

Page 1: CAPITULO 12_SIST DIGITALES

5/13/2018 CAPITULO 12_SIST DIGITALES - slidepdf.com

http://slidepdf.com/reader/full/capitulo-12sist-digitales 1/5

 

INSTITUTO TECNOLOGICO SUPERIOR SUDAMERICANO. CAP. 12 REPERTORIO DE INSTRUCCIONES MAQUINA

CAPITULO 12. REPERTORIO DE INSTRUCCIONES MAQUINA

Paola Lizzet Esparza [email protected]  

RESUMEN: el siguiente documento se da a conocer la

forma correcta de utilizar las instrucciones máquinadentro de lo que es la programación de los DsPic.

PALABRAS CLAVE: ejecutar, instrucciones,programa, registros.

  INTRODUCCIÓN

Consta de un total de 84 instrucciones. Las depropósito general (instrucciones MCU), y la quepermiten hacer operaciones matemáticas complejas(instrucciones DSP).Las instrucciones de los dsPIC30F tienen una longitud

de 25 bitsExcepto tres que son: CALL, DO, GOTO, requieren dosposiciones de memoria.

La mayoría de las instrucciones se ejecutan en unciclo de instrucciones (4T osc) con las siguientesexcepciones: 

1. DO, MOV.D, POP.D, PUSH.D, TBLRDH,BLRDL, TBLWTH Y TBLWTL necesitan dosciclos de instrucciones para ejecutarse.

2. DIV.S, DIV.U, DIVF precedidas por lainstrucción REPEAT#17, que supone suejecución 18 veces y dura 18 ciclos deinstrucción.

3. La instrucción que cambia el Contador dePrograma necesita dos ciclos en su ejecución,siendo ejecutada como NOP los dos ciclosextra.

4. SKIP (brinco) salta una instrucción compuestapor 2 palabras de memoria requiere tres ciclosde instrucción, se ejecutan 2 NOP de los ciclosextra.

5. Las instrucciones RETFIE, RETLW y RETURNcaso especial del modificador de programa, seejecutan en tres ciclos de instrucción.

6. Las instrucciones que acceden a la memoria deprograma para manejar datos utilizando lavisibilidad del Espacio de Programa precisanuno o dos ciclos de retardo

1. FORMATODe los tres bytes que conforman una instrucción1. El primero se destina al código OP2. Los dos restantes sirven para determinar los

operandos y las características especiales conlas que se desarrollan especiales con las quese desarrolla la ejecución de la instrucción

El código OP se aplica al primer byte de cadainstrucción (el código OP significa mover un byte dedatos al acumulador desde un registro).

Para mayor explicación a continuación se muestra dos

ejemplos de instrucciones aplicado el código OP.} CLRWDT sirve para refrescar al perro guardián

(pone en cero WDT), los 16 bits de menos pesocontiene un valor concreto.

} COM se destina a complementar el registro oposición de la memoria de datos (f)

} COM afecta como operando fuente al registrode trabajo Ws y deposita el resultado en Wd.Complementa a 1 el contenido de Ws ydeposita el resultado en Wd también ocupa 24

bits, se ejecuta en un ciclo de instrucción yafecta a los señalizadotes N y Z.

2. MODOS DEDIRECCIONAMIENTO DE LAMEMORIA DE DATOS

Son los procedimientos que se usan en lasinstrucciones para determinar el valor de losoperandos.

Existen cuatro modos de direccionamientoprincipales para acceder a la memoria de datos: 1. Direccionamiento directo a memoria: dirección

de la memoria de datos en la que sealmacena el operando.

2. Direccionamiento directo por registros: eloperando reside en uno delos registros detrabajo (W0-W15).

3. Direccionamiento indirecto por registros: losregistros de trabajo contienen la direcciónefectiva de la memoria de datos donde sehalla el operando.

4. Direccionamiento inmediato: el valor deloperando en el código de la propiainstrucción.

2.1 Modo de DireccionamientoDirecto a MemoriaUsan instrucciones que manejan los operandos

que se han colocado en la memoria de datos Manejan los 8 KB inferiores dela memoria de

datos (RAM cercana) La instrucción MOV pueden acceder a los 64

KB de la memoria, permite cargar cualquier posición desde un registro de trabajo yviceversa.

Page 2: CAPITULO 12_SIST DIGITALES

5/13/2018 CAPITULO 12_SIST DIGITALES - slidepdf.com

http://slidepdf.com/reader/full/capitulo-12sist-digitales 2/5

 

INSTITUTO TECNOLOGICO SUPERIOR SUDAMERICANO. CAP. 12 REPERTORIO DE INSTRUCCIONES MAQUINA

Se puede acceder a los operandos con tamañobyte y palabra, excepto MOV que accede a los64 KB de memoria, siempre como palabra.

2.2  Modo de DireccionamientoDirecto por Registro

y Se accede al contenido de los 16 registros de

trabajo, W0-W15.y Soporta accesos de tamaño byte y palabra con

cualquiera de los registros de trabajo.y Sistema eficaz ,depositan los operandos de las

instrucciones en el banco de registro..

y Lo usan variantes de las instrucciones DO yREPEAT ofrece la posibilidad de generar bucles

2.3.  Modo de DireccionamientoIndirecto por Registros 

El contenido de un registro de trabajo es ladirección efectiva de la posición de la memoria de datosque contiene el operando.

Este direccionamiento es muy potente, tiene la

posibilidad de incrementar o decrementar el punterocontenido en el registro de trabajo antes o después de laejecución de la instrucción. Permite la exploraciónautomática de memoria. Las instrucciones DSP de tipoMAC (Multiplicar y Acumular) admiten formas especialesde direccionamiento indirecto por registros, que permitenrealizar dos pre búsquedas de operandos X e Ysimultáneamente.

Modo de direccionamiento modular (circular) Modo de inversión del acarreo (bit reversed)

2.4. Modo de DireccionamientoInmediato

El código de la instrucción incorpora un valor constante para el operando

3. MODOS DE

DIRECCIONAMIENTO DE LAMEMORIA DE DATOS

La memoria de programa se puede direccionar conel Contador de Programa (PC), que tiene una longitudde 23 bits. Cada posición de la memoria de programaconsta de 24 bits y la mayoría de las instrucciones secodifica con dicho tamaño. Cada instrucción de tipopalabra ocupa dos posiciones de la memoria deprograma (48 bits). Durante la ejecución secuencial delprograma se incrementa PC+2.

Para modificar el PC no secuencialmente existen variosmétodos: 

1. Cambiar el valor del PC con un valor inmediatocodificado en la instrucción o dinámicamentemediante un valor contenido en el registro detrabajo.

2. En los bucles LOOP el PC se carga con el valor 

almacenado en el registro DOSTART, trasejecutar la instrucción que direcciona DOEND.3. En aquellos casos que es cargado el contenido

de la pila, como sucede en los retornos desubrutina y de interrupciones.

4. TAMAÑO DE LOS OPERANDOS 

La mayoría de las instrucciones operan enmodo byte o modo palabra. Cuando se emplea elmodo byte se emplea las siguientes reglas: 1. Todas las referencias a los registros de trabajo

utilizan el byte de menos peso, quedandoinalterado el de más peso.

2. Las referencias indirectas de los registros detrabajo están formadas por direcciones de 16bits que guardan los mencionados registros.

3. Las referencias a posiciones de memoriamaneja el byte indicado en la dirección.

4. El Registro de Estado (SR) refleja el resultadode la operación de tamaño byte.

Cuando se opera en modo palabra, las palabrasdeben estar alineadas y ocupar direccionesmúltiplos de dos, de forma que el byte de menospeso ocupe la dirección par cuyo bit LBS vale 0. Siuna palabra se mueve en una dirección impar segenera una <<excepción de error de dirección>>.Todas las dobles palabras deben estar alineadas.

5. EL MANEJO DE LA PILA 

El registro W15 actúa por defecto Puntero dePila (SP) y después de un RESET queda cargadocon la dirección 0x800, lo que asegura que apuntauna dirección válida en todos los modelos de losdsPIC30F permitiendo el tratamiento de lasexcepciones que puedan ocurrir antes que elusuario haya inicializado el SP

El SP apunta una la dirección de la cima de lapila y trabaja desde las direcciones inferiores hastalas superiores. Cuando se saca algo de la pila(POP) el SP se predecrementa, mientras que si sellena la pila se postincrementa. La pila se carga conla instrucción PUSH y se descarga con POP.

CALL mete en la pila el PC y cuando secomplete la subrutina, la pila devuelve el contenidode la cima al PC para retornar al programa principal.

Page 3: CAPITULO 12_SIST DIGITALES

5/13/2018 CAPITULO 12_SIST DIGITALES - slidepdf.com

http://slidepdf.com/reader/full/capitulo-12sist-digitales 3/5

 

INSTITUTO TECNOLOGICO SUPERIOR SUDAMERICANO. CAP. 12 REPERTORIO DE INSTRUCCIONES MAQUINA

Las instrucciones PUSH W0, PUSH W1 y PUSHW2 almacenan en la pila los parámetros que va a utilizar la rutina COMPUTAR.

Tras ejecutar las instrucciones PUSH y CALLCOMPUTAR, la pila queda cargada como se muestra enla figura.

Dentro de la rutina COMPUTAR el FP se usapara acceder a las variables temporales y a losparámetros de la función. Con [W14+n] se accede a lasvariables temporales de la rutina y con [W14-n] seaccede a los parámetros.

En COMPUTAR, LNK #4 salva a la pila el FP e

inicializa su valor como el nuevo SP. Se suma 4 al SP yasí se guardan las variables temporales (1y 2) y el W15(SP)queda apuntando a la cima de la nueva pila,mientras que W14 se usa para direccionar losparámetros y las variables.

6. PECULIARIDADES DE LASINSTRUCCIONES DEBIFURCACIÓN CONDICIONAL

Las instrucciones de bifurcación condicional querompen la ejecución secuencial del programa se basanen el estado de un señalizador tras ejecutar algún tipode instrucción de comparación.Entre estas instrucciones destacan CP, CPO, CPB queejecutan la resta de dos operandos pero no generanresultado, solo sirven para afectar a los señalizadores deSR.Después se testea el SR y se cumple con la condición,se bifurca el flujo de control, en caso contrario se ejecuta

la siguiente instrucción.La tabla muestra las condiciones que deben cumplir losbits del SR para producir la bifurcación. En algunoscasos la condición la establece un solo bit del SR y enotros son varios. Soportan los resultados de losalgoritmos DSP explorando los bits de saturación de losacumuladores de 40 bits (SA y SB) y los de sobrepasamiento (OA y OB).

7. ASIGNACIÓN DE LOSREGISTROS DE TRABAJOPara mantener la máxima potencia y compatibilidad

del juego de instrucciones se han pre-asignado ciertasfunciones a los 16 registros de trabajo que se exponenen la tabla.

En el caso de actuar como operandos en lasinstrucciones DSP que tienen la posibilidad de prebúsqueda las condiciones son: 

W4-W7 Se usan como operandos aritméticos. W8-W11 se usan para guardar los punteros de

las direcciones de los operandos en las zonas dememoria MAC.

W12 se usa como registro de desplazamiento delíndice en la pre búsqueda de operandos de lasinstrucciones MAC.

W13 se usan con algunas instrucciones MACque tienen la posibilidad de << post-escritura>>, que consiste en almacenar el otro acumulador que no utiliza la instrucción y la dirección a la

Page 4: CAPITULO 12_SIST DIGITALES

5/13/2018 CAPITULO 12_SIST DIGITALES - slidepdf.com

http://slidepdf.com/reader/full/capitulo-12sist-digitales 4/5

 

INSTITUTO TECNOLOGICO SUPERIOR SUDAMERICANO. CAP. 12 REPERTORIO DE INSTRUCCIONES MAQUINA

que apunta W13, que funciona con post-incremento.

W15 actúa como Puntero Pila (SP) por defecto,así como W14 como Puntero del marco de laPila(FP).

8. UTILIZACIÓN DE LOSACUMULADORESA Y B

Los acumuladores Ay B son utilizados por instrucciones DSP para realizar operacionesmatemáticas y de desplazamiento. Como losacumuladores tienen un tamaño de 40 bits y los busesde X e Y solo tienen 16 bits, el método para cargar yalmacenar los acumuladores debe ser comprendido.

8.1 ACCESO AL ACUMULADORLos 6 registros q componen a los acumuladores A

y B están situados en memoria como cualquier otroregistro especial de función, lo que les permite ser accedidos con direccionamiento indirecto por registro dearchivo, haciendo uso de cualquier instrucción quesoporta tal direccionamiento.

Es recomendable que las instrucciones DSP comoLAC, SAC, SAC.R sean cargadas y almacenadas en losacumuladores, ya que requieren extensión de signo,desplazamiento y capacidad de rotación.

9. PECULIARIDADES DE LAS

INSTRUCCIONES DSP TIPOMAC

Las operaciones DSP de multiplicación yacumulación (MAC) son un juego especial deinstrucciones especial que proporciona el uso máseficiente de la arquitectura dsPIC30F.

Las instrucciones DSP MAC utilizan los pares dedatos X e Y que permiten a estas instrucciones ejecutar las siguientes instrucciones en un solo ciclo

y Dos lecturas de la memoria de datosutilizando registros de trabajo con prebúsqueda.

y Dos actualizaciones para los registros detrabajo con pre búsqueda.

y Una operación matemática con elacumulador.

Cuatro de las diez instrucciones DSP tipo MACson también capaces de realizar una operación con unacumulador, mientras se están almacenando losresultados rodeados en el otro acumulador. Estacaracterística se denomina <<post-escritura>> (WB),proporciona mucha flexibilidad para el desarrollo desoftware

El acumulador con WB puede ser usado paraejecutar dos algoritmos, o para procesar eficientementenúmeros complejos.

9.1. PRE-BÚSQUEDA DE LASINSTRUCCIONES TIPO MAC

Las instrucciones de pre-búsqueda de operandosutilizan la dirección efectiva almacenada en un registrode trabajo. Una de las lecturas debe basarse desde elbus de datos X utilizando W8 o W9, y la otra desde elbus de datos, mediante el uso de W10 o W1.

Los registros de destino permisibles para ambas

pre-búsquedas son W4y W7.Modo de direccionamiento con registro offset(desplazamiento) utiliza W12 como registro que contieneel desplazamiento.

El registro e direccionamiento offset solo puedeser utilizado en el espacio X con W9, y en el espacio Ycon W11.

9.2 ACTUALIZACIÓN DELREGISTRO PRE-BÚSQUEDA

La dirección efectiva almacenada en cadaregistro de trabajo puede ser modificada, estacaracterística permite el procesamiento de un único ciclopara los datos almacenados de manera secuencial en lamemoria X e Y.

Las modificaciones de la dirección permitidas acada registro de pre-búsqueda son: -6, -4, -2, 0(ningunaactualización),+2, +4, +6.

Cuando se utiliza el modo de direccionamientopor registros offset no se realizan actualizaciones en elregistro pre-búsqueda(W9 o W11) o en el registrooffset(W12).

9.3. OPERACIONES MACLas operaciones se realizan por las instrucciones

DSP de tipo MAC se encuentran en la multiplicación delcontenido de los registros y en la adición oalmacenamiento del resultado en el acumulador A o enel B.

Para las instrucciones ED y EDAC, debe ser especificado el multiplicando, debido a la definición de

la operación distancia euclídea.El valor pre-búsqueda de las memorias X e Y no

está realmente almacenado en W4-w7, solo sealmacenan la diferencia de palabras de datos de pre-búsqueda.

Las dos instrucciones de tipo MAC restantes,CRL y MOVSAC, son útiles para iniciar o completar unaserie de instrucciones MAC o EDAC, y no usan elmultiplicador.

CRL tiene la capacidad de borrar el acumulador Ao B, realiza la pre-búsqueda de dos valores de la

Page 5: CAPITULO 12_SIST DIGITALES

5/13/2018 CAPITULO 12_SIST DIGITALES - slidepdf.com

http://slidepdf.com/reader/full/capitulo-12sist-digitales 5/5

 

INSTITUTO TECNOLOGICO SUPERIOR SUDAMERICANO. CAP. 12 REPERTORIO DE INSTRUCCIONES MAQUINA

memoria de datos y almacena el contenido del otroacumulador. 

9.4. INSTRUCCIONES DE TIPO MACCON POST- ESCRITURA (WB)

La capacidad de la instrucción de tipo MAC conpost-escritura facilita el tratamiento de algoritmos.

Estas instrucciones nos permiten realizar una

operación matemática con un acumulador y almacenar los contenidos con redondeo del otro acumulador en elmismo ciclo.

Se utiliza el registro W13 y soporta dos modos dedireccionamiento: directo e indirecto con post-incremento.

Las instrucciones CLR, MOVSAC, y MSCsoportan el acumulador con post-escritura, mientras quelas instrucciones ED, EDAC, MPY y MPY.N no.

9.5. SINTAXIS MACLa sintaxis de la instrucción MAC puede tener 

varios formatos, que dependen del tipo de instrucción yde la operación q se realice, en lo que respecta a la pre-

búsqueda y al acumulador con post-escritura. Aexcepción de las instrucciones CLR y MOVSAC, todaslas instrucciones de clase MAC deben especificar unacumulador y dos multiplicandos.

9.6. INSTRUCCIONES DELACUMULADOR DSP

Estas no tienen la capacidad de pre-búsqueda opost-escritura, pero son capaces de sumar, negar,trasladar, cargar y almacenar el contenido delosacumuladores de 40 bits.

Las instrucciones ADD y SUB permiten que sesume ose reste el contenido de los dos acumuladoresentre ellos.

10. NORMALIZACIÓN ELACUMULADOR CON LAINSTRUCCIÓN FBCL

La normalización es el proceso de escaldo de unvalor cuantificado para su máximo rango dinámico

Es una técnica usada para asegurar que el acumulador está bien alineado antes del almacenamiento de datosen el propio acumulador y la instrucción FBCL facilitaesta función.

Los dos acumuladores de 40 bits tienen 8 bits queguarda el registro ACCU, que aumenta el rangodinámico de los acumuladores 1.31 hasta 9.3, cuando se

opera en el modo Súper Saturación, la instrucciónSAC.R, solo almacena datos de 16 bits de ACCH, lo cualpuede suponer un problema.

Una alineación apropiada para elalmacenamiento de contenidos del acumulador sepuede realizar mediante el escalado de la parte baja delacumulador si ACCU está en uso, o el escalado de laparte alta del acumulador si todos los bits de ACCH nose están usando.

Para realizar este escalado, la instrucción FBCLdebería operar en el byte ACCU y en la palabra ACCH.Si se requiere un traslado, se empleara el registro dedesplazamiento de 40 bits de la ALU, usando lainstrucción SFTAC para realizar el escalado.

11. CONCLUSIONESDespués de analizar este capítulo, es fácil darse cuentaque programar dsPICs es muy parecido a programar PICs, existen algunas restricciones importantes pero nocomplicadas.

12. REFERENCIAS

y Microcontroladores digitales de señales,arquitectura, programación y aplicaciones

y http://es.wikipedia.org/wiki/PIC16F87X