Tipos de direccionamiento en arquitectura de computadores

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,04 KB

Modos de direccionamiento

Direccionamiento inmediato

El operando es parte de la instrucción.

  • Ejemplo: ADD 5
  • Suma 5 al acumulador, donde 5 es el operando.
  • No se requiere una referencia a memoria para obtener el operando, ahorrando un ciclo de máquina.
  • El tamaño del número está restringido al tamaño del campo de direcciones.

Direccionamiento directo

El campo de dirección contiene la dirección efectiva del operando.

  • Ejemplo: ADD 5
  • Se suma el contenido de la dirección 5 al acumulador.
  • Requiere una única referencia a memoria.
  • No requiere cálculo especial.
  • Espacio de memoria restringido al tamaño del campo de dirección.

Direccionamiento indirecto

El campo de dirección contiene la dirección de una celda, la cual contiene la dirección del operando.

  • Ejemplo: ADD 5
  • Se obtiene la dirección de la celda 5 (p.e. 100).
  • Se suma el contenido de la dirección 100 al acumulador.
  • Permite un rango de direcciones mayor al tamaño del largo de dirección (2tamaño palabra).

Direccionamiento de registros

Similar al directo, la diferencia es que el campo de direcciones apunta a un registro en lugar de una dirección de memoria.

  • Número de registros limitado, generalmente se poseen 8 o 16 registros, por lo cual se requieren 3 o 4 bits.
  • Ciclo fetch rápido (no requiere acceso a memoria principal).
  • Desventaja: espacio muy limitado (pocos registros).

Direccionamiento indirecto con registros

  • Similar al direccionamiento indirecto.
  • Los operandos están en una celda de memoria apuntada por el contenido del registro.
  • Gran poder de direccionamiento (2N).
  • Un acceso a memoria (uno menos que el direccionamiento indirecto).

Direccionamiento con desplazamiento

El campo de direcciones está compuesto por una dirección base y un registro de desplazamiento, o viceversa.

Tres direccionamientos con desplazamientos más comunes

  • Desplazamiento relativo: Utiliza el PC como registro referenciado.

    • A la dirección entregada en el código de operación se le suma el valor del PC.
    • La dirección está en complemento a dos (positivo o negativo).
    • Las direcciones son del tipo “adelante n bytes (palabras) de la posición actual”.
    • Permite la relocalización del código (cargar un programa en cualquier dirección).
  • Direccionamiento con registro base: Posee un registro base el cual contiene una dirección de memoria (punto de carga).

    • La dirección en el campo de dirección, la cual siempre es positiva, se suma al contenido en el campo base.
    • El registro puede ser representado en forma implícita o explícita.
  • Indexado: Utiliza un registro de índice.

    • La dirección final es la suma de la dirección entregada en el campo de dirección más el registro índice.
    • Útil para operaciones de manejo de vectores, ejemplo: mover un arreglo de un área de memoria a otra.

Combinación de direccionamiento indirecto con indexado

  • Post-indexado: El contenido del campo de direcciones se emplea para acceder a la posición de memoria que contiene una dirección directa, luego se indexa con el valor del registro.

    • Usado para estructuras.
  • Pre-indexado: Se obtiene la dirección apuntada por la dirección entregada más el registro índice.

    • Ejemplo: Vectores de interrupción.

Direccionamiento de pila

La dirección se da implícitamente, ésta está en el top del stack.

  • Ejemplo: ADD
  • Suma al acumulador el valor obtenido al comienzo del stack.

Entradas relacionadas: