martes, 9 de junio de 2015

Modos de direccionamiento

Los modos de direccionamiento son las diferentes maneras de especificar en informatica un operando dentro de una instrucción en lenguaje ensamblador. Este, 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.
Tipos de direccionamiento:
1. Implicito
 En este modo de direccionamiento no es necesario poner ninguna dirección de forma explícita, ya que en el propio código de operación se conoce la dirección del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operar.
Supongamos una arquitectura de pila, las operaciones aritméticas no requieren direccionamiento explícito por lo que se ponen como:
- add
- sub
...
¿Por qué? Porque cuando se opera con dos datos en esta arquitectura se sabe que son los dos elementos del tope de la pila:
Ejemplo de una pila
1 2 3 4 5 6 <- pila
top() es 1
ntop() es 2
donde top() representa el tope de la pila y ntop() el siguiente al tope de la pila y son estos argumentos con los que se opera al llamar a una orden en concreto.
2. Inmediato
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.
DireccionamientoInmediato.png
ejemplo:MOV A,#17H

3.  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.
DireccionamientoDirecto.png
Ejemplo: MOV A,17H
4. Indirecto
El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando.
DireccionamientoIndirecto.png
Ejemplo: MOV A,@17H
5.Absoluto
El campo de operando contiene una dirección en memoria, en la que se encuentra la instrucción. Y no se cancela.
6. De registro
Sirve para especificar operandos que están en registros. En este modo, los operandos están en registros que residen dentro de la CPU
DireccionamientoRegistro.png

7. De desplazamiento
Combina el modo directo e indirecto mediante registros
8. 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.

No hay comentarios:

Publicar un comentario