domingo, 1 de septiembre de 2013

Modos De Direccionamiento

Cuando el campo de dirección especifica un registro del procesador, la instrucción se dice que está en el modo de registro.



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.




De registro
Sirve para especificar operan dos que están en registros.El control localiza la instrucción de la memoria y utiliza su parte de dirección para acceder a 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.




Indexado respecto a una base
Se trata de una combinación de los dos anteriores y consiste en calcular la dirección efectiva como:
EA = RI+RB+DM
Respecto al contador de programa
Consiste en dirección una posición de memoria usando como registro base al contador de programa (PC), el funcionamiento es análogo al direccionamiento respecto a registro base con la salvedad de que, en este caso, el offset puede ser también negativo.

Indexado con autoincremento/autodecremento

Es un modo de direccionamiento análogo al indexado, explicado anteriormente.
La única diferencia es que permite un incremento o decremento de la dirección final o el registro índice según
los siguientes casos:

-> Indexado con autopreincremento: Incrementa el registro índice primero (se incrementa un valor, según el tamaño del objeto direccionado) y luego calcula la EA al igual que el direccionamiento indexado.

-> Indexado con autoposincremento: Calcula la dirección efectiva y después incrementa esta.

-> Indexado con autopredecremento: Decrementa el registro índice y después calcula la dirección efectiva.
-> Indexado con autoposdecremento: Calcula la dirección efectica y después decrementa esta.

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






Modos simples de direccionamiento de datos

Registros

+------+-----+-----+-----+

| mul | reg1| reg2| reg3| reg1 := reg2 * reg3;

+------+-----+-----+-----+

Este "modo de direccionamiento" no tiene una dirección efectiva y no se considera como un modo de dirección en algunas computadoras.
En este ejemplo, todos los operandos están en registros, y el resultado se coloca en un registro.
Base más desplazamiento y variaciones
Muchas veces nos referimos a él como "base más desplazamiento"

+------+-----+-----+----------------+

| load | reg | base| offset | reg := RAM[base + offset]

+------+-----+-----+----------------+

(La dirección efectiva = desplazamiento + contenidos de la base especificada del registro)

El desplazamiento suele ser un valor con signo de 16 bits (aunque la 80386 se expandió a 32 bits).

Si el desplazamiento es cero, esto se convierte en un ejemplo de registro indirecto frente, la dirección efectiva es sólo el valor en el registro de base.
En muchas máquinas RISC, el registro 0 se fija en el valor cero. Si el registro 0 se utiliza como el registro de base, esto se convierte en un ejemplo de direccionamiento absoluto. Sin embargo, sólo una pequeña parte de la memoria se puede acceder (64 kilobytes, si el desplazamiento es de 16 bits).



No hay comentarios:

Publicar un comentario