trabajo modos de direccionamiento y formato

18

Upload: jhoan-jose-tarrago-perez

Post on 13-Jul-2015

559 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 1/18

Page 2: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 2/18

 

Introducción

Las instrucciones máquina son las acciones elementales que puede ejecutar un

computador. Una acción compleja deberá codificarse como una secuencia de instrucciones

máquina en lo que se denomina un programa. Estos programas son desarrollado por 

  programadores que por lo general emplean lenguajes ensambladores ´que luego sontransformados por un proceso a lenguaje maquina con el fin de que desempeñen una tare en

específico dentro del computador.

En general una instrucción codifica una operación básica que el computador realiza

sobre uno datos ubicados en memoria o en los registro de la máquina y a los que accede

utilizando un modo de direccionamiento.

Modos de Direccionamiento y Formato

Page 3: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 3/18

 

Modos de Direccionamiento:

Un modo de direccionamiento especifica la forma de calcular la dirección dememoria efectiva de un operando mediante el uso de la información contenida en registros

y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte.

Page 4: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 4/18

Page 5: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 5/18

 

Direccionamiento inmediato:

Es el modo de direccionamiento en el que el operando esta en realidad presente en la propia instrucción. La ventaja del direccionamiento inmediato es que una vez captada la instrucciónno se requiere una referencia a memoria para obtener el operando ahorrándose pues un ciclo dememoria o de cache en el ciclo de instrucción. La desventaja es que el tamaño del numero está

restringido a la longitud del campo de direcciones que, en la mayoría de los repertorios deinstrucciones, es pequeño comparado con la longitud de la palabra.

Operando = A

Direccionamiento Directo:

Es el direccionamiento en el que el campo de direcciones contiene la dirección efectiva deloperando. Solo requiere de una referencia a memoria, y su limitación es que proporciona un espaciode direcciones restringido.

EA= A

Direccionamiento indirecto:El problema con el direccionamiento directo, es que la longitud del campo de direcciones es

normalmente menor que la longitud de la palabra, limitando de esta manera el rango de direcciones.Es entonces cuando interviene el direccionamiento indirecto, cuyo proceso consiste en hacer que elcampo de direcciones referencie la dirección de una palabra de memoria que contenga la direccióncompleta del operando. La desventaja de este direccionamiento es que es que la ejecución de lainstrucción requiere dos referencias a memoria para captar el operando: una para captar su direccióny otra para captar su valor.

Page 6: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 6/18

 

EA= (A) ------------> El paréntesis se interpreta como <<contenido de>>

Direccionamiento de Registros:

El direccionamiento de registros es similar al directo. La única diferencia es que el campode direcciones referencia un registro en lugar de una dirección de memoria principal.

EA= R 

Las ventajas del direccionamiento de registro son: 1) Solo es necesario un campo pequeñode direcciones en la instrucción. 2) No se requieren referencias a memoria. El tiempo de acceso aun registro de la CPU es mucho menor que para la memoria principal. La desventaja es que elespacio de direcciones está muy limitado.

Direccionamiento indirecto con registro:

Page 7: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 7/18

 

El campo de operando de la instrucción contiene un identificador de registro en el que seencuentra la dirección efectiva del operando. El campo de direcciones referencia una posición deuna palabra completa (un registro completo en este caso) que contenga la dirección efectiva deloperando. Además el direccionamiento indirecto con registro emplea una referencia menos amenoría que el direccionamiento indirecto.

EA= (R)

Direccionamiento con desplazamiento:

Combina las posibilidades del direccionamiento directo y el direccionamiento indirecto conregistro. El registro con desplazamiento requiere que las instrucciones tengan dos campos dedirecciones, el valor= A, se utiliza directamente. El otro campo de direcciones se refiere a unregistro cuyo contenido se suma a A para generar la dirección efectiva.

EA= A + (R).

Tres de los direccionamientos con desplazamientos más comunes son:

• Direccionamiento relativo:

El registro referenciado implícitamente es el contador de programa. El campo de

direcciones se trata como un número en complemento a 2, y representa un desplazamiento

relativo al PC.

Page 8: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 8/18

 

• Direccionamiento con registro –base:

En este direccionamiento el registro referenciado contiene una dirección de

memoria y el campo de dirección contiene un desplazamiento desde dicha dirección

• Direccionamiento indexado:

El campo de direcciones referencia una dirección de memoria principal, y el

registro referenciado contiene un desplazamiento positivo desde esa dirección. En el

indexado se considera que el campo de direcciones es una dirección de memoria,

generalmente contiene más bits que un campo de direcciones de una instruccióncomparable que emplee direccionamiento con registro base.

Direccionamiento de pila:

Se utiliza cuando el operando está en memoria y en la cabecera de la pila. Este

direccionamiento se basa en las estructuras denominadas Pila (tipo LIFO), las cuales están

marcados por el fondo de la pila y el puntero de pila (*SP), El puntero de pila apunta a la última

 posición ocupada. Así, como puntero de direccionamiento usaremos el SP. El desplazamiento más

el valor del SP nos dará la dirección del objeto al que queramos hacer referencia. En ocasiones, si

no existe C. de desplazamiento solo se trabajara con la cima de la pila. Este tipo de

direccionamiento nos aporta flexibilidad pero por el contrario, es mucho más complejo que otros

tipos estudiados más arriba.

Modos de direccionamiento del Pentium

El mecanismo de traducción de direcciones del Pentium produce una dirección,

denominada dirección virtual o efectiva, que es un desplazamiento dentro de un segmento.

La suma de la dirección de comienzo del segmento y la dirección efectiva produce una

dirección lineal. Si se está empleando paginación, esta dirección lineal debe pasar por un

mecanismo de traducción de páginas para producir una dirección física.

El Pentium está equipado con diversos modos de direccionamientos, ideados para

 permitir la ejecución eficiente de lenguajes de alto nivel. La figura indica el hardware

involucrado. El segmento objeto de la referencia se determina mediante el registro de

segmento. Hay seis registros de segmento; cuál de ellos es usado para una referencia

concreta depende del contexto de ejecución y de la instrucción. Cada registro de segmento

retiene la dirección de comienzo del correspondiente segmento. Asociado con cada registro

de segmento visible para el usuario, hay un registro descriptor de segmento (no visible al

 programador), que registra los derechos de acceso para el segmento, así como la dirección

Page 9: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 9/18

 

de comienzo y el limite (longitud) del segmento. Además, hay dos registros que pueden

emplearse para construir una dirección: el registro base y el registro índice.

Modo inmediato: el operando se incluye en la instrucción. El operando puede ser un byte, una palabra o una palabra doble de datos.

Modo de operando en registro: el operando está situado en un registro. Para

instrucciones de tipo general, tales como transferencias de datos, aritméticas, y lógicas, el

operando puede ser uno de los registros generales de 32 bits (EAX, EBX, ECX, EDX, ESI,

EDI, ESP, EBP), uno de los registros generales de 16 bits (AX, BX, CX, DX, SI, DI, SP,

BP), o uno de los registros generales de ocho bits (AH, BH, CH, DH, AL, BL, CL, DL).

Para operaciones en coma flotante, los operandos de 64 bits se forman utilizando dos

registros de 32 bits como una pareja. Hay también algunas instrucciones que hacen

referencia a los registros de segmento (CS, DS, ES, SS, FS, GS).

Modo desplazamiento: el desplazamiento del operando (la dirección efectiva en la

figura) está incluido, formando parte de la instrucción, como desplazamiento de 8, 16, o 32

 bits.

Con segmentación, todas las direcciones dadas en instrucciones hacen referencia a

desplazamiento dentro de segmentos.

Page 10: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 10/18

 

El modo de direccionamiento con desplazamiento se puede encontrar en pocas

maquinas ya que, implica instrucciones largas. En el caso del Pentium, el valor de

desplazamiento puede ser tan largo como 32 bits, haciendo que la instrucción tenga seis

 bytes. El direccionamiento con desplazamiento puede ser útil para referenciar variables

globales.

Modo base con desplazamiento: la instrucción incluye un desplazamiento que hay que

sumar a un registro base, que puede ser cualquiera de los registros de uso general. Ejemplo

de uso de este modo es:

• Utilización para acceder a un campo de registro. El registro base apunta al

comienzo del registro, mientras que el desplazamiento indica la posición del

campo.

Modo desplazamiento con índice <<escalado>>: la instrucción incluye un

desplazamiento a sumar a un registro, llamado en este caso registro índice. El registro

índice puede ser cualquiera de los registros de uso general excepto el ESP, quenormalmente se emplea para procesamiento con la pila. Para calcular la dirección efectiva,

el contenido del registro índice se multiplica por un factor de escala 1, 2, 4 u 8, y se suma

después de un desplazamiento. Este modo método es muy conveniente para indexar 

matrices. Un factor de escala dos puede usarse para una matriz de enteros de 16 bits. Un

factor de escala cuatro para enteros de 32 bits o para números en coma flotante. Finalmente,

un factor de ocho puede emplearse para una matriz de números en coma flotante de doble

 precisión.

Modo base con índice y desplazamiento: suma los contenidos de los registros base e

índice, y un desplazamiento, para formar la dirección efectiva. De nuevo, el registro base puede ser cualquier registro de uso general, y el registro índice puede ser cualquier registro

de uso general excepto el ESP. Como ejemplo, este modo de direccionamiento podría

emplearse para acceder a una matriz local en un marco de pila.

Modo base con índice escalado y desplazamiento: suma el contenido de registro

índice multiplicado por un factor de escala, con el contenido del registro base, y el

desplazamiento. Esto es útil cuando una matriz esta almacenada en una marco de pila; en

este caso, los elementos de la matriz serian de 2, 4, u 8 bytes de longitud. Este modo

 permite también la indexación eficiente de una matriz bidimensional cuando los elementos

de la misma tiene longitudes de 2, 4, u 8 bytes.

Direccionamiento relativo:  puede emplearse en instrucciones de transferencia del

control (control de flujo). Se suma un desplazamiento al valor del contador de programa,

que apunta a la instrucción siguiente. En este caso, el desplazamiento se trata como un byte,

una palabra o una palabra doble numérica con signo, cuyo valor bien incrementa o

decrementa la dirección contenida en el contador de programa.

Page 11: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 11/18

 

Tabla de modos de direccionamiento del pentium

Modos de direccionamiento del powerpc

Como la mayoría de las maquinas RISC, y en contrastes con el Pentium y la

mayoría de los CISC, el powerpc emplea un conjunto de modos de direccionamiento

sencillo y relativamente evidente.

Direccionamiento de carga/memorización: el powerpc proporciona dos modos de

direccionamiento alternativos para instrucciones de carga/memorización. En el

direccionamiento indirecto, la instrucción incluye un desplazamiento de 16 bits que se

suma a un registro base, que puede ser alguno de los registros de uso general. Además, la

instrucción puede especificar que la nueva dirección efectiva calculada se devuelva al

registro base, actualizando su contenido actual. La opción de actualización es útil para elindexado progresivo de matrices en bucles.

La otra técnica de direccionamiento para las instrucciones de carga/memorización es

el direccionamiento indexado indirecto: en este caso, la instrucción referencia un registro

 base y otro índice, pudiendo ambos ser cualquiera de los registros de uso general. La

dirección efectiva es la suma de los contenidos de estos dos registros. De nuevo, la opción

de actualización hace que el registro base se actualice con la nueva dirección efectiva.

Page 12: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 12/18

 

Direccionamiento de bifurcaciones. Se dispone de tres modos de direccionamiento

  para bifurcaciones. Si se emplea direccionamiento absoluto con instrucciones de salto

incondicional, la dirección efectiva de la siguiente instrucción se obtiene a partir de un

valor inmediato de 24 bits contenido en la instrucción. El valor de 24 bits se extiende hasta

32 bits añadiendo dos ceros a su extremo menos significativo (esto es posible ya que las

instrucciones están cada 32 bits) y extendiendo (repitiendo) el signo. Para las instruccionesde salto condicional, la dirección efectiva de la siguiente instrucción se deduce de un valor 

de inmediato de 16 bits incluido en la instrucción. Este valor se extiende a un valor de 32

 bits añadiendo dos ceros a su extremo menos significativo y extendiendo el signo.

Con direccionamiento relativo, el valor inmediato de 24 bits (instrucciones de

salto incondicional) o de 14 bits (instrucciones de salto condicional) se extiende como en

los casos anteriores. El valor resultante se suma entonces al contador de programa a fin de

determinar una posición relativa a la instrucción actual.

El otro modo de direccionamiento de bifurcaciones condicionales es el

direccionamiento indirecto. Este modo obtiene la dirección efectiva de la siguiente

instrucción bien del registro de enlace o bien del registro de cuenta. En este caso, el registro

de cuenta se usa para retener la dirección de la instrucción de bifurcación. Este registro

 puede también emplearse para mantener un contador para bucles.

Page 13: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 13/18

 

Formato de instrucciones

El formato de instrucciones es un conjunto de especificaciones que indican como

debe ser interpretado el patrón de bits de una instrucción de máquina para logra su

ejecución dentro del computador. El formato de la instrucción nos indica cual es el código

de operación y cuales los operandos que la instrucción específica, tanto explícita comoimplícitamente.

Longitud de la Instrucción:

En algunas máquinas todas las instrucciones tienen la misma longitud; en

otras hay instrucciones con distintas longitudes. La longitud de las instrucciones

 puede ser menor, igual o mayor que el tamaño de la palabra. Exigir que todas las

instrucciones posean la misma longitud hace más sencillo su decodificación pero

 puede desperdiciarse espacio.

En el momento que se diseña una nueva computadora se deben escoger los

formatos de las instrucciones y para ello se deben tomar en cuenta varios factores.Por un lado, si la nueva computadora llega a tener un éxito comercial, el

conjunto de instrucciones podría sobrevivir 20 años o más. En este caso, la

capacidad para añadir nuevas instrucciones y aprovechar otras oportunidades que

surjan durante el tiempo de vida del diseño de ese computador tiene gran

importancia. Además, la eficiencia de un conjunto de instrucciones depende en gran

medida de la tecnología con la que se va a implementar. Con el pasar del tiempo,

esta tecnología puede cambiar enormemente y hacer que ciertas decisiones que se

tomaron al momento del diseño, no parezcan luego que fueron las mejores.

Un criterio de diseño importante es el relativo al tamaño de las instrucciones.

Un programa conformado por n instrucciones de 16 bits ocupa menos espacio dememoria que n instrucciones de 32 bits. Si se minimiza mucho el tamaño de las

instrucciones puede hacer que el proceso de decodificación y sobreposición de

instrucciones sea más complicado.

Un motivo para disminuir el tamaño de las instrucciones es el ancho de

 banda de la memoria, es decir, el número de bits que la memoria puede suplir por 

segundo. La velocidad de los procesadores ha aumentado más rapidamente que la

velocidad de las memorias, por lo tanto las memorias se transforman en cuellos de

 botellas en el sistema. El hecho de que las instrucciones sean más cortas implica un

  procesador más rápido. Dado que los computadores modernos pueden ejecutar 

varias instrucciones en un ciclo de reloj, es imperativo traer varias instrucciones encada ciclo de reloj, por lo tanto, el tamaño de la instrucción es importante.

Asignación de los bits

Page 14: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 14/18

 

Hemos visto algunos de los factores en la decisión de la longitud del formato de

instrucción. Un aspecto igualmente difícil es como asignar los bits en dicho formato. Los

compromisos a la hora de decidir son en este caso complejos.

Para una longitud de instrucción dada, existe claramente un compromiso entre el

número de codop. Esto reduce, para un formato de instrucción de una longitud dada, elnúmero de bits disponibles para direccionamiento. Hay refinamiento interesante al respecto,

consiste en el uso de codops de longitud variable. En esta aproximación, existe una longitud

mínima de codop pero, para algunos de ellos, se pueden especificar operaciones adicionales

utilizando más bits de la instrucción.

Los siguientes factores, relacionados entre sí, afectan a la definición del uso dado a

los bits de direccionamiento:

•  Numero de modos de direccionamiento:

•  Numero de operandos:

• Registros frente a memoria

•  Numero de conjuntos de registros

• Rango de direcciones

• Granularidad de direcciones

• PDP8

• PDP10

• Ortogonalidad

• Complitud

•Direccionamiento directo

FALTA definir eso…

Instrucciones de longitud variable

FALTA

Page 15: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 15/18

 

Formatos de instrucciones del Pentium y power pc

➢ Formatos de instrucciones del Pentium:

Page 16: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 16/18

 

Las instrucciones se componen entre 0 y 4 prefijos de instrucciones opcionales un codop de 1 o 2

 bits 1 especificación de dirección opcional, que consta del bits mod r/m y de l bits de índice de

escala un desplazamiento opcional, y un campo inmediato opcional.

Bits de prefijo:

➢ Prefijo de instrucciones:Posee el prefijo lock o algunos de los prefijos de repetición. El prefijo lock se emplea

exclusivamente para asegurar el uso exclusivo de la memoria compartida en entornos

multiprocesador. Los prefijos de repetición indica que se repita una operación en una cadena, lo que

 permite al procesador procesar cadenas mucho más rápido que un software habitual.

➢ Segmento explicito :especifica de forma explicita que registro de segmento debería utilizar una instrucción,

 prevaleciendo sobre la selección de registro de segmento implícito

➢ Tamaño de dirección:El procesador puede direccionar memoria utilizando direcciones de 16 o 32 bits. El tamaño de

dirección define el tamaño del desplazamiento de direcciones generalmente durante el calculo de la

dirección efectiva.

➢ Tamaño de operadores:De igual manera que las instrucciones tiene un tamaño implícito de memoria un operador de

operandod e 16 a 32 bits. El rpefijo operando tiene un tamaño de 32 o 16 bits.

La propia instrucción incluye los siguientes campos:

➢ Codop:el codop: incluye bits que indican si el operando es de 1 bits o de tamaño completo(16 ao 32 bits ) si el campo del dato debe o no extenderse con el signo

➢ Mod r/m: aporta información de direccionamiento, este bits indica si un operando esta enun registro o en memoria; si esta en memoria, los campos del bits especifica el modo dedireccionamiento a utilizar 

➢ Sib: este bits consta de 3 campos. El campo “ss” especifica el factor de escala para elindexado de escalado, el campo de “indice” especifica el campo del indice, el campo “base”especifica el registro base.

➢ Inmediato: proporcioan el valor de un operando de 8, 16 o 32 bits.

Page 17: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 17/18

Page 18: Trabajo Modos de Direccionamiento y Formato

5/12/2018 Trabajo Modos de Direccionamiento y Formato - slidepdf.com

http://slidepdf.com/reader/full/trabajo-modos-de-direccionamiento-y-formato 18/18

 

Conclusión