domingo, 1 de septiembre de 2013

Investigar: definiciones y ejemplos MODOS DE DIRECCIONAMIENTO


Introducción

Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción en lenguaje ensamblador.

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

Tipos de Direccionamiento

=== Implícito === 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.

Otro ejemplo de este tipo de direccionamiento lo podemos encontrar en la arquitectura de acumulador (AC) donde siempre hay un parámetro implícito y este es el AC.

Para finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas más usuales, remarcamos que también podemos encontrarlo en la arquitectura con registros de propósito general, por ejemplo con órdenes como setc, que pone a 1 el registro c (acarreo).

Inmediato

En la instrucción está incluido directamente el operando.

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

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.

Con este tipo de direccionamiento, la dirección efectiva es contenida en la misma instrucción, tal como los valores de datos inmediatos que son contenidos en la instrucción. Un procesador de 16 bits suma la dirección efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la dirección física del operando.



Ejemplo: MOV A,17H

Indirecto

El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando.



Ejemplo: MOV A,@17H

De registro

Sirve para especificar operandos que están en registros.



Ejemplo: MOV A,R0

DIRECCIONAMIENTO RELATIVO A REGISTRO

a)La instrucción NO contiene la dirección del operando >> debe ser calculada.

-La instr contiene un DESPLAZAMIENTO q hay q añadir a la dirección marcada por un puntero para obtener la dirección final del operando>> RETRASO ADICIONAL.

-El puntero suele estar en un registro.

b) Permite acceder a un conjunto de direcciones de memoria a partir de una considerada como referencia.>> en el CD emplea un nº de bits pequeño

c) Varios tipos:

DIRECCIONAMIENTO INDEXADO

a) Un registro índice contiene la dirección de referencia y actúa de puntero.

b) Similar al relativo a registro base; pero el valor del reg indice se modifica con frecuencia en la ejecución del programa.

c) Para:

-operaciones iterativas

- recorrer estructuras de datos (tablas, vectores...).Permite realizar incrementos y decrementos de una cierta magnitud >> AUTO-INDEXADO

*PREAUTOINCREMENTO y PREAUTODECREMENTO:

1.-el reg indice se incrementa (o decrementa)

2.- se obtiene la dirección = REG INDICE + DESPL..

*POSTAUTOINCREMENTO :

1.-dirección = REG INDICE +DESPL..

2.- el reg indice se incrementa

-VENTAJA : flexibilidad.

-DESVENTAJA: complejidad.

COMBINACIÓN DIRECTA DE MODOS BÁSICOS:

a) Combinación “mediante registro” e “indirecto” El registro utilizado contiene la dirección

b) “Indirecto” e “indexado”



 

No hay comentarios:

Publicar un comentario