domingo, 19 de octubre de 2014

Modos de direccionamientos




Los modos de direccionamientos no son más que  un mecanismo que permite localizar una ubicación de algún dato (operando o la ubicación de un operando en una instrucción) específico y se pueda acceder al mismo de una forma fácil y ligera.
Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte
Además de esto el modo de direccionamiento  permite  reducir el espacio ocupado en memoria por las instrucciones, Permitir la reubicación del código y Facilitar el manejo de las estructuras de datos. Un computador dispone de varios modos de direccionamiento y esto permite un manejo más eficiente y eficaz, entre direccionamiento que maneja un computar tenemos los siguientes:
   
   Ø  DIRECCIONAMIENTO INMEDIATO
La instrucción contiene al propio objeto.
Se emplea cuando la instrucción contiene un valor constante.
El tamaño del operando viene determinado por el espacio reservado para él en el Formato de    instrucción.
En este modo el operando es especificado en la instrucción misma. En otras palabras, una instrucción de modo inmediato tiene un campo de operando en vez de un campo de dirección. El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operación especificada en la instrucción. Las instrucciones de modo inmediato son útiles para inicializar los registros en un valor constante. Cuando el campo de dirección especifica un registro del procesador, la instrucción se dice que está en el modo de registro

ejemplo: MOV A,#17H


  Ø  DIRECCIONAMIENTO DIRECTO
El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando.

En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en la memoria y su dirección es dada directamente por el campo de dirección de la instrucción. En una instrucción de tipo ramificación el campo de dirección especifica la dirección de la rama actual.



Ejemplo: MOV A,17H
Ø  DIRECCIONAMIENTO  INDIRECTO

El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando
La instrucción contiene una dirección que se emplea para leer en memoria una Dirección intermedia que será la verdadera dirección del objeto buscado. 
Subcampos del campo de operando
Mdir
CD (dirección       indirecta
Ø   DIRECCIONAMIENTO POR REGISTRO 


Sirve para especificar operando que están en registros. En este modo, los operandos están en registros que residen dentro de la CPU



  Ø   DIRECCIONAMIENTO RELATIVO A REGISTRO
La dirección del objeto se obtiene sumando el contenido de un registro base, un registro índice y un desplazamiento.
 Subcampos del campo de operando

Mdir CR1 CR2 CD (desplazamiento)

Ejemplo M68000:     MOVE.L D0,12(A0,D2)

Consiste, al igual que el indirecto a través de registro, en calcular la dirección efectiva  como la suma del contenido del registro base y un cierto desplazamiento  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. Este modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las funciones (para acceder a los parámetros almacenados en la pila).

  Ø  DIRECCIONAMIENTO  INDIRECTO A REGISTRO 
- Es similar al direccionamiento indirecto, pero la dirección intermedia está contenida en un registro, no en una posición de memoria.
- La instrucción contendrá la referencia al registro.
- Subcampos del campo de operando

Mdir
CR


- Coincide con el direccionamiento relativo a registro base sin usar desplazamiento.
- Ejemplo M68000: MOVE.L D0,(A4)





DE PILA
Se utiliza cuando el operando está en memoria y en la cabecera de la pila. Este direccionamiento se basa en las estructuras denominadas Pila (tipo LIFO), las cuales están marcados por el fondo de la pila y el puntero de pila (*SP), El puntero de pila apunta a la última posición ocupada. Así, como puntero de direccionamiento usaremos el SP. El desplazamiento más el valor del SP nos dará la dirección del objeto al que queramos hacer referencia. En ocasiones, si no existe C. de desplazamiento solo se trabajara con la cima de la pila. Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario, es mucho más complejo que otros tipos estudiados más arriba.

RELATIVO A UN REGISTRO INDICE 
Es similar al anterior, excepto que es el contenido del registro índice 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 índice y una dirección de memoria:



vídeo sobre direccionamiento de memoria 





el contenido es de mi autoria y es una recopilacion de distintas fuentes :

Puedes descargar un PDF con mas información al respecto  











No hay comentarios :

Publicar un comentario