Requisito previo: modos de direccionamiento En una operación de obtención de instrucciones del proceso del ciclo de instrucción, el modo de direccionamiento juega un papel crucial. El modo de direccionamiento es cómo se direcciona el operando en una palabra de instrucción antes de ejecutarse.
1. Modo de dirección relativa: en este modo, la dirección efectiva (EA) del operando se calcula sumando el contenido del registro de la CPU y la parte de la dirección de la palabra de instrucción. La dirección efectiva se calcula sumando el desplazamiento (valor inmediato dado en la instrucción) y el valor del registro. La parte de la dirección de la instrucción suele ser un número con signo, ya sea positivo o negativo. La dirección efectiva así calculada es relativa a la dirección de la siguiente instrucción.
EA = CPU Register + Displacement
Figura – Modo de direccionamiento relativo a PC
El modo de direccionamiento relativo se puede clasificar en tres tipos:
- PC (Contador de programa) Modo de direccionamiento relativo.
- Modo de direccionamiento relativo de registro de índice o modo de direccionamiento indexado.
- Modo de direccionamiento de registro base.
2. Modo de dirección directa: En el modo de dirección directa, la dirección efectiva del operando es igual a la parte de dirección de la instrucción, es decir, la parte de dirección de la instrucción indica la ubicación de memoria que contiene el operando. Ejemplo: ADD R1, 4000 donde 4000 es la dirección efectiva de la ubicación.
Figura: modo de dirección directa En este ejemplo, la ubicación de memoria 4000 contiene el operando 100 que se agrega al contenido de R1 y se almacena en R1.
Diferencia entre el modo de direccionamiento relativo y el modo de direccionamiento directo:
MODO DE DIRECCIONAMIENTO RELATIVO independiente de la posición | MODO DE DIRECCIONAMIENTO DIRECTO |
---|---|
La dirección efectiva se calcula sumando el contenido del Registro de la CPU con la parte de dirección de la instrucción. | La dirección para obtener el operando ya se proporciona en la parte de dirección de la instrucción. No se calcula. |
El modo relativo tiene tres tipos: Modos de direccionamiento relativo de PC, relativo de registro de índice y relativo de registro base. | El modo de direccionamiento directo no tiene tipos. |
Da como resultado un campo de dirección más corto en el formato de instrucción, ya que la dirección relativa se puede especificar con una pequeña cantidad de bits. | Da como resultado un campo de dirección más largo en el formato de instrucción, ya que requiere más bits para designar la dirección de memoria completa. |
A menudo se usa con instrucciones de tipo rama, ya que actualiza directamente el contador del programa. | No se utiliza en instrucciones de tipo rama. |
Se utiliza para escribir código reubicable y código independiente de la posición, es decir, para la reubicación del programa en tiempo de ejecución. | Se utiliza para acceder a datos estáticos. |
Se utiliza para implementar direccionamiento de arrays y registros. | Se utiliza para implementar variables. |
Se utiliza para manejar procedimientos recursivos. | No puede manejar procedimientos recursivos. |
El modo de direccionamiento relativo a la PC o relativo a la base se prefiere al modo de direccionamiento directo porque: iii) Será más sencillo reubicarse. |
Es menos preferible utilizar el modo de direccionamiento relativo a la PC o relativo a la base. |
Ventaja- Flexible | Ventaja: fácil de usar, ya que no interviene ningún intermediario para hacer referencia a la memoria. |
Desventaja- Complejidad | Desventaja: límite de espacio de direcciones |
Aplicación: ayuda en la reubicación del programa en tiempo de ejecución y la modificación de la secuencia de instrucciones. | Aplicación: ayuda a acceder a datos estáticos e implementar variables. |
Publicación traducida automáticamente
Artículo escrito por srishtiganguly1999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA