Vous êtes sur la page 1sur 11

MODOS DE

DIRECCIONAMIENTO
SISTEMAS COMPUTARIZADOS

ALUMNA: SALTO LLANOS CECILIA ROMINA

PROFESOR: ING. MEDICI OCTAVIO

CARRERA: ING. EN ELECTRNICA

AO: 2016
INTRODUCCIN
En informtica, los modos de direccionamiento son las diferentes maneras de especificar un
operando dentro de una instruccin en lenguaje ensamblador.

Un modo de direccionamiento especifica la forma de calcular la direccin de memoria efectiva de un


operando mediante el uso de la informacin contenida en registros y/o constantes, contenida dentro
de una instruccin de la mquina o en otra parte.

2
TIPOS DE DIRECCIONAMIENTO

Implcito
En este modo de direccionamiento no es necesario poner ninguna direccin de forma
explcita, ya que en el propio cdigo de operacin se conoce la direccin de uno o varios
operando/s al (a los) que se desea acceder o con el/los que se quiere operar.

Supongamos una arquitectura de pila, las operaciones aritmticas no requieren


direccionamiento explcito por lo que se ponen como: - add - sub ...

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.

Inmediato
En la instruccin est incluido directamente el operando.

En este modo el operando es especificado en la instruccin misma. En otras palabras, una


instruccin de modo inmediato tiene un campo de operando en vez de un campo de
direccin. El campo del operando contiene el operando actual que se debe utilizar en
conjunto con la operacin especificada en la instruccin. Las instrucciones de modo
inmediato son tiles para inicializar los registros en un valor constante.

Cuando el campo de direccin especifica un registro del procesador, la instruccin se dice


que est en el modo de registro.

Su valor es fijo, por lo que se suele utilizar en operaciones aritmticas o para definir
constantes y variables. Como ventaja, no se requiere acceso adicional a memoria para
obtener el dato, pero el tamao del operando est limitado por el tamao del campo de
direccionamiento.

Las desventajas principales son que el valor del dato es constante y el rango de valores
que se pueden representar est limitado por el tamao de este operando.

3
Ejemplo: MOV A,#17H

Directo
El campo de operando en la instruccin contiene la direccin en memoria donde se
encuentra el operando.

En este modo la direccin efectiva es igual a la parte de direccin de la instruccin. El


operando reside en la memoria y su direccin es dada directamente por el campo de
direccin de la instruccin. En una instruccin de tipo ramificacin el campo de direccin
especifica la direccin de la rama actual.

Si hace referencia a un registro de la mquina, el dato estar almacenado en este registro


y hablaremos de direccionamiento directo a registro; si hace referencia a una posicin de
memoria, el dato estar almacenado en esta direccin de memoria (direccin efectiva) y
hablaremos de direccionamiento directo a memoria. Estos modos de direccionamiento
tienen una forma muy simple y no hay que hacer clculos para obtener la direccin
efectiva donde est el dato. El tamao del operando, en el caso del direccionamiento
directo a registro, depender del nmero de registros que tenga la mquina; en el
direccionamiento directo a memoria, depender del tamao de la memoria.

4
Ejemplo: MOV A,17H

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

Si hace referencia a un registro de la mquina, la direccin de memoria (direccin efectiva)


que contiene el dato estar en este registro y hablaremos de direccionamiento indirecto a
registro; si hace referencia a una posicin de memoria, la direccin de memoria (direccin
efectiva) que contiene el dato estar almacenada en esta posicin de memoria y
hablaremos de direccionamiento indirecto a memoria.

La desventaja principal de este modo de direccionamiento es que necesita un acceso ms


a memoria que el directo. Es decir, un acceso a memoria para el direccionamiento
indirecto a registro y dos accesos a memoria para el direccionamiento indirecto a memoria;
por este motivo este segundo modo de direccionamiento no se implementa en la mayora
de las mquinas.

5
Ejemplo: MOV A,@17H

Absoluto
El campo de operando contiene una direccin en memoria, en la que se encuentra la
instruccin. Y no se cancela.

De registro
Sirve para especificar operandos que estn en registros.

En este modo, los operandos estn en registros que residen dentro de la CPU.

6
Indirecto mediante registros
El campo de operando de la instruccin contiene un identificador de registro en el que se
encuentra la direccin efectiva del operando.

En este modo el campo de la direccin de la instruccin da la direccin en donde la


direccin efectiva se almacena en la memoria. El control localiza la instruccin de la
memoria y utiliza su parte de direccin para acceder a la memoria de nuevo para leer una
direccin efectiva. Unos pocos modos de direccionamiento requieren que el campo de
direccin de la instruccin sea sumado al control de un registro especificado en el
procesador. La direccin efectiva en este modo se obtiene del siguiente clculo:

Dir. efectiva = Dir. de la parte de la instruccin + Contenido del registro del procesador...

7
De desplazamiento
Combina el modo directo e indirecto mediante registros.

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
estn marcados por el fondo de la pila y el puntero de pila (*SP). El puntero de pila apunta
a la ltima posicin ocupada. As, como puntero de direccionamiento usaremos el SP.

El desplazamiento ms el valor del SP nos dar la direccin del objeto al que queramos
hacer referencia. En ocasiones, si no existe C. de desplazamiento solo se trabajara con la
cima de la pila.

Como es un modo de direccionamiento implcito, solo se utiliza en instrucciones


determinadas, las ms habituales de las cuales son PUSH (poner un elemento en la pila) y
POP (sacar un elemento de la pila).

Este tipo de direccionamiento nos aporta flexibilidad pero por el contrario, es mucho ms
complejo que otros tipos estudiados ms arriba.

8
Relativo a un registro base
Consiste, al igual que el indirecto a travs de registro, en calcular la direccin efectiva
(EA, effective address) como la suma del contenido del registro base y un cierto
desplazamiento (offset) que siempre ser positivo. Esta tcnica permite cdigos
reentrantes y acceder de forma fcil y rpida 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 parmetros almacenados en la pila).

Relativo a un registro ndice


Es similar al direccionamiento relativo a un registro base, excepto que es el contenido del
registro ndice el que indica el desplazamiento que se produce a partir de una direccin de
memoria que se pasa tambin 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 direccin de memoria.

Indexado respecto a una base


Se trata de una combinacin de los dos anteriores y consiste en calcular la direccin
efectiva como:

Relativo al contador de programa


Consiste en direccin una posicin de memoria usando como registro base al contador de
programa (PC), el funcionamiento es anlogo al direccionamiento respecto a registro base
con la salvedad de que, en este caso, el offset puede ser tambin negativo.

Indexado con autoincremento/autodecremento


Es un modo de direccionamiento anlogo al indexado, explicado anteriormente.

La nica diferencia es que permite un incremento o decremento de la direccin final o el


registro ndice segn los siguientes casos:

Indexado con auto pre incremento: Incrementa el registro ndice primero (se
incrementa un valor, segn el tamao del objeto direccionado) y luego calcula la EA al
igual que el direccionamiento indexado.

9
Indexado con auto pos incremento: Calcula la direccin efectiva y despus incrementa
esta.

Indexado con auto pre decremento: Decrementa el registro ndice y despus calcula la
direccin efectiva.

Indexado con auto pos decremento: Calcula la direccin efectiva y despus


decrementa esta.

Instruccin de salto con direccionamiento absoluto


Consiste en cargar en el PC el valor que se especifica, por ejemplo: jmp 0xAB ---->
Carga 0xAB en PC

Instruccin de salto con direccionamiento relativo


Es parecida a la especificada anteriormente la diferencia es que el salto es relativo al PC,
pongamos un ejemplo: supongamos que PC vale = 0x0A, si nosotros interpretamos la
instruccin jr +03, saltaremos tres posiciones posteriores a PC (tambin podra ser -03 y
seran posiciones anteriores). Pero, cuidado! si esa instruccin estaba en la posicin 0x0A
la direccin de PC a incrementar ser la inmediatamente posterior (ya que PC se
incrementa automticamente despus de leer la instruccin), por lo que quedara:

PC = 0x0B ---> nuevo PC = 0x0B+0x03 = 0x0E, con lo que el PC quedara como 0x0E.

Direccionamiento paginado
En el paginado la memoria se encuentra actualmente dividida en pginas (bloques de
igual longitud).

Para obtener las direcciones se necesita:

Indicador de pgina (IP): en un registro especfico o de propsito general de la


mquina.
Direccin de la palabra (DP): en el campo CD de la instruccin.

As, concatenando ambas partes se obtiene la direccin completa.

10
El problema viene cuando queremos referenciar un dato al que no podemos acceder de
forma relativa (p.e. porque los registros base no puedan alcanzar dicha posicin aun con el
direccionamiento absoluto. Sin embargo, slo una pequea parte de la memoria se puede
acceder (64 kilobytes, si el desplazamiento es de 16 bits).

El desplazamiento de 16 bits puede parecer muy pequeo en relacin con el tamao de la


memoria de los equipos actuales (esta es la razn por la 80386 se expandi a 32 bits).
Podra ser peor ya que: los sevidores IBM System/360 slo tienen un signo de 12 bits de
desplazamiento. Sin embargo, el principio de localizacin se aplica en un corto espacio de
tiempo, la mayora de los elementos de datos que un programa quiere acceder estn
bastante cerca uno del otro.

Este modo de direccionamiento est estrechamente relacionado con el modo de


direccionamiento absoluto.

Ejemplo 1: Dentro de una subrutina, un programador estar principalmente interesados en


los parmetros y las variaen los atributos del objeto actual.

11

Vous aimerez peut-être aussi