Upload
paola-esparza
View
13
Download
0
Embed Size (px)
Citation preview
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
1
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.
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
2
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.
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
3
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
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
4
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
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
5
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