Permite determinar un operando , o la ubicación de un operando en una instrucción. Estos operandos pueden residir en diversas partes:
1.-La propia instrucción
2.-Memoria principal
3.-Registros internos de la CPU
-Los programas utilizan varios MD motivados por:
1.- Ahorro de espacio
2.- Código reubicable : se puede almacenar el programa en diversas zonas de memoria sin q afecte a la ejecución del código
3.-Estructuras de datos.
DIRECCIONAMIENTO INMEDIATO
a) El operando está presente en la propia instrucción, por lo tanto, esta opera con un valor constante.
b) El direccionamiento es mas rápido El operando se encuentra ya en IR al fin de la fase de búsqueda. 2 palabras: lectura de memoria adicional.
DIRECCIONAMIENTO DIRECTO
La instrucción contiene la dirección real del operando.
1.- Lectura MAS RAPIDA q en memoria >> ninguna lectura adicional.
2.- Solo necesita CD pequeño.
3.- Rango operando = Rango registro >> LIMITA espacio de direcciones.
°Direccionamiento absoluto:
a) La instrucción contiene la dirección de memoria donde se encuentra el objeto, q se halla en una posición de mem principal.
b) Rango de posiciones limitado por CO.
c) Formato de 2 palabras >> MAYOR CAPACIDAD DE DIRECCIONAMIENTO >> lectura adicional.
° Direccionamiento mediante registro
a) Operando almacenado en un registro de la CPU. La instrucción indica de q registro se trata.
b) Registros limitados.
DIRECCIONAMIENTO INDIRECTO
El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando.
DIRECCIONAMIENTO ABSOLUTO
El campo de operando contiene una dirección en memoria, en la que se encuentra la instrucción.
De registro: Sirve para especificar operandos que están en registros.
DIRECCIONAMIENTO INDIRECTO MEDIANTE REGISTROS
El campo de operando de la instrucción contiene un identificador de registro en el que se encuentra la dirección efectiva del operando. En este modo el campo de la dirección de la instrucción da la dirección en donde la dirección efectiva se almacena en la memoria. El control localiza la instrucción de la memoria y utiliza su parte de dirección para accesar la memoria de nuevo para leer una dirección efectiva. Unos pocos modos de direccionamiento requieren que el campo de dirección de la instrucción sea sumado al control de un registro especificado en el procesador. La dirección efectiva en este modo se obtiene del siguiente cálculo:
Dir. efectiva = Dir. de la parte de la instrucción + Contenido del registro del procesador.
DIRECCIONAMIENTO RESPECTO A UN REGISTRO BASE
Este modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las funciones (para acceder a los parametros apilados en la pila, valga la redundancia). Consiste, al igual que el indirecto a través de registro, en calcular la EA (Effective Address) como la suma del contenido del registro base y un cierto desplazamiento (u offset) que siempre será positivo. Esta técnica permite códigos reentrantes y acceder de forma fácil y rápida a posiciones cercanas de memoria.
EA = RB+offset
RB = registro base
offset = desplazamiento
DIRECCIONAMIENTO RESPECTO A UN REGISTRO INDICE
Es similar al anterior, lo único que es el contenido del registro indice el que indica el desplazamiento que se produce a partir de una dirección de memoria que se pasa también como argumento a la orden que utiliza este modo de direccionamiento. Aunque en esencia son dos modos equivalentes. La EA se calcula como la suma del contenido del registro indice y una dirección de memoria:
EA = RI+DM
RI = registro indice
DM = direccion de memoria
-> RI se comporta como un offset






No hay comentarios:
Publicar un comentario