Modos de direccionamiento

17
Modos de direccionamiento “Un modo de direccionamiento es un procedimiento que permite determinar un operando, o la dirección de un operando o una instrucción”. Como lo más frecuente es especificar la dirección donde está almacenado el dato o la instrucción, se emplea siempre el término modo de direccionamiento, aunque en el primer caso (determinar directamente el operando) no está muy justificado. Para simplificar, se denominará objeto al operando, resultado o instrucción que se desea direccionar.

description

Modos de direccionamiento. “Un modo de direccionamiento es un procedimiento que permite determinar un operando, o la dirección de un operando o una instrucción”. - PowerPoint PPT Presentation

Transcript of Modos de direccionamiento

Page 1: Modos de direccionamiento

Modos de direccionamiento

“Un modo de direccionamiento es un procedimiento que permite determinar un operando, o la dirección de un operando o una instrucción”.

Como lo más frecuente es especificar la dirección donde está almacenado el dato o la instrucción, se emplea siempre el término modo de direccionamiento, aunque en el primer caso (determinar directamente el operando) no está muy justificado.

Para simplificar, se denominará objeto al operando, resultado o instrucción que se desea direccionar.

Page 2: Modos de direccionamiento

Modos de Direccionamiento

Inmediato

Directo

Indirecto

Registro

Indirecto con registro

Con desplazamiento

Pila

Page 3: Modos de direccionamiento

Significado:

MIPS es el acrónimo de "millones de instrucciones por segundo". Es una forma de medir la potencia de los procesadores.

Page 4: Modos de direccionamiento

Direccionamiento inmediato

En el direccionamiento inmediato el objeto (un operando en este caso) está almacenado dentro de la propia instrucción.

Por ejemplo, en el MIPS las instrucciones tipo I tienen un operando inmediato de 16 bits:

El modo de direccionamiento más simple es incluir el valor del operando dentro de la propia instrucción. Este modo de direccionamiento se usa para especificar constantes. En el MIPS existen varias instrucciones, las tipo I, que incluyen una constante como uno de sus operandos. Ejemplos de estas instrucciones son addi, ori.Su limitación principal es el tamaño máximo disponible. En el caso del MIPS el tamaño del valor inmediato son 16 bits. No obstante, la mayoría de las arquitecturas CISC permiten inmediatos de varios tamaños.

Page 5: Modos de direccionamiento

Direccionamiento directo absoluto

Se especifica directamente la dirección del objeto. Puede ser:

De registro. Se especifica el número del registro interno.

De memoria. Se especifica la dirección completa.

De página base. Se especifica la parte baja de la dirección. Los bits altos están implícitos.

Page 6: Modos de direccionamiento

En el modo de direccionamiento directo absoluto, en la instrucción se especifica la localización del objeto.

Existen tres alternativas:

De registro. Si el dato está almacenado en alguno de los registros internos del procesador, basta con que en la instrucción se indique el número de dicho registro.

De memoria. Si el objeto se encuentra en la memoria, en la instrucción se especifica la dirección completa de dicho dato. Aunque desde el punto de vista del programador este modo de direccionamiento es muy conveniente, desde el punto de vista del rendimiento no es el más adecuado, ya que la instrucción ha de incluir la dirección completa del objeto.

De página base. Con el objetivo de buscar facilidad de programación sin perjudicar las prestaciones, algunos procesadores incluyen un modo de direccionamiento directo absoluto en el cual sólo se especifica en la instrucción la parte baja de la dirección del objeto, estando implícita la parte alta.

Page 7: Modos de direccionamiento

Direccionamiento directo absoluto

El MIPS dispone de direccionamiento directo absoluto de registro:

Page 8: Modos de direccionamiento

Direccionamiento directo relativo

Se especifica un desplazamiento sobre una dirección de referencia.

La dirección se calcula como referencia +desplazamiento.El desplazamiento suele ser pequeño menos bitsEl desplazamiento suele considerarse con signo.Se complica el circuitoSegún la dirección de referencia existen varios tipos de direccionamiento directo relativo.

En este modo de direccionamiento, la instrucción contiene, en lugar de la dirección absoluta del objeto, un desplazamiento sobre una dirección de referencia.Como generalmente basta con desplazamientos pequeños, no es necesario que el desplazamiento sea del tamaño necesario para acceder a todo el mapa de direcciones, por lo que en general este modo de direccionamiento precisa de menos bits que el absoluto. Como la dirección de referencia sí suele ser del tamaño necesario para abarcar todo el mapa de direcciones, con este modo de direccionamiento se puede acceder a cualquier posición de memoria.

Page 9: Modos de direccionamiento

Dir. directo relativo a registro base

La dirección de referencia se almacena en un registro base

La instrucción ha de contener:

Un campo para el desplazamiento.Otro para indicar el registro

Muy útil para acceder a estructuras de datos

Se coloca la dirección base de la estructura en el reg. base.Se accede a cada elemento con el desplazamiento apropiado

En este modo de direccionamiento, la dirección de referencia está almacenada en un registro base. Este registro puede ser fijo o pueden existir varios registros disponibles para este fin, por lo que la instrucción incluirá también en estos casos un campo para especificar dicho registro de referencia.

Page 10: Modos de direccionamiento

Dir. directo relativo a registro baseLas instrucciones de carga y almacenamiento del MIPS utilizan este modo de direccionamiento.

las instrucciones de carga y almacenamiento del MIPS: lw, sw, lh, sh, lb y sb utilizan estemodo de direccionamiento. Como se ha dicho antes, el desplazamiento es de 16 bits y se suma con signo al registro base, que puede ser cualquiera de los 32 registros disponibles.Nótese que las instrucciones lw y sw accederán a los 32 bits que hay a partir de la direccióncalculada, lh y sh a los 16 bits y, por último, lb y sb accederá al byte que hay en la direccióncalculada.

Page 11: Modos de direccionamiento

Dir. directo relativo a registro índice

Es una variación del anterior:La dirección de referencia está contenida en la instrucción.El desplazamiento está en un registro índice.

La dirección final se calcula al igual que antes como referencia +desplazamiento

Permite acceder fácilmente a vectores de datos.Para ello es conveniente escalar el índice.

En lugar de almacenar la dirección de referencia en un registro y usar un desplazamiento pequeño para acceder a los datos, ahora se usa como dirección de referencia un campo de la instrucción y como desplazamiento un registro. El principal inconveniente de este modo de direccionamiento es que si se desea que la dirección de referencia abarque todo el mapa de direcciones, ha de tener unelevado número de bits.

Page 12: Modos de direccionamiento

Dir. directo relativo a registro índice

En algunas arquitecturas el registro índice se puede incrementar automáticamente. Existen 4 posibilidades:

Pre-autoincremento. Vec[ ++i], I I + 1 ; (ref + I)

Pre-autodecremento. Vec[ - - i ] I - 1 ; (ref + I)

Post-autoincremento. Vec[ i ++i, (ref + I); I I + 1

Post-autodecremento. Vec[ i - -i,. (ref + I); I I - 1

Su utilidad es la de recorrer secuencialmente un vector.

Page 13: Modos de direccionamiento

Algunas arquitecturas como el 68000 o el PowerPC permiten incrementar o decrementar automáticamente el registro índice. Existen cuatro posibilidades, aunque no todas las arquitecturas incluyen las cuatro:

Page 14: Modos de direccionamiento
Page 15: Modos de direccionamiento
Page 16: Modos de direccionamiento
Page 17: Modos de direccionamiento

Investigar