Académique Documents
Professionnel Documents
Culture Documents
Modos de direccionamiento
Los llamados modos de direccionamiento son las diferentes maneras de
especificar en informtica un operando dentro de una instruccin (lenguaje
ensamblador). Cmo se especifican e interpretan las direcciones de memoria
segn las instrucciones.
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.
El trmino "modo de direccionamiento" est sujeta a interpretaciones diferentes: o
bien "direccin de memoria de modo de clculo" o "modo de acceso operando".
Bajo las instrucciones de la primera interpretacin, que no puede leer o escribir de
la memoria a la memoria (como "aadir literal de registro"), se considerar que no
tienen un "modo de direccionamiento". La segunda interpretacin permite para las
mquinas tales como VAX, que utilizan bits de modo operando para permitir un
operando literal. Slo la primera interpretacin se aplica a las instrucciones tales
como "carga efectiva de direccin".
Tipos de direccionamiento
Todo modo de direccionamiento cuenta con el direccionamiento implcito,
direccionamiento inmediato, direccionamiento directo, direccionamiento indirecto y
el direccionamiento relativo donde cada uno tiene una funcin a registros o pilas.
El propio cdigo de operacin indica la direccin del operando.
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 del
(de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere
operar.
1
Direccionamiento inmediato
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
2
instrucciones de modo inmediato son tiles para inicializar los registros en un valor
constante.
Ejemplo:
El operando es una constante situada detrs del cdigo de la instruccin. Sin
embargo, como registro destino no se puede indicar uno de segmento (habr que
utilizar uno de datos como paso intermedio).
ADD AX,0fffh
El nmero hexadecimal 0fffh es la constante numrica que en el direccionamiento
inmediato se le sumar al registro AX.
Al trabajar con ensambladores, se pueden definir smbolos constantes (ojo, no
variables) y es ms intuitivo:
Dato EQU 0fffh;
smbolo constante
DW
MOV
0fffh;
Porque hay que tener en cuenta que cuando traduzcamos a nmeros el smbolo
podra quedar:
17F3:0A11 DW
FFF
MOV AX,0A11
Direccionamiento 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.
Con este tipo de direccionamiento, la direccin efectiva es contenida en la misma
instruccin, tal como los valores de datos inmediatos que son contenidos en la
instruccin. Un procesador de 16 bits suma la direccin efectiva al contenido del
segmento de datos previamente desplazado en 4 bits para producir la direccin
fsica del operando.
Ejemplo:
El operando est situado en la direccin indicada en la instruccin, relativa al
segmento que se trate:
MOV AX,[57D1h]
MOV AX,ES:[429Ch]
DW
1234h
0x0000059A
Pues los datos se almacenan en little endian. La representacin en ensamblador
de este modo de direccionamiento es mediante una etiqueta. El ensamblador
asigna a cada una de ellas un valor, y cuando se utiliza en una instruccin se
reemplaza el smbolo por el valor de su direccin de memoria.
Direccionamiento indirecto
Atreves de registro
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...
Ejemplo:
mov AX,[DI]
Establece que el contenido de la palabra de memoria cuya direccin est indicada
por el contenido del registro DI, sea copiado en el registro AX.
Direccionamiento relativo
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).
La direccin de un operando se obtiene de la suma del nmero y el contenido de
un registro base (el BX o el BP), relativo al segmento seleccionado. El modo
relativo a base es ms usado frecuentemente para acceder a estructuras de datos
complejas.
Ejemplo:
MOV CL,[BP]+DESP
8
10