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.