Presentado a:
ING. MAURICIO BARRIOS
GRUPO: AD
MODOS DE DIRECCIONAMIENTO.
Son los distintos modos de acceder a los datos en memoria por parte del procesador. Antes de ver
los modos de direccionamiento, echaremos un vistazo a la sintaxis general de las instrucciones,
ya que pondremos alguna en los ejemplos:
INSTRUCCIN
DESTINO, FUENTE
Donde destino indica dnde se deja el resultado de la operacin en la que pueden participar
(segn casos) FUENTE e incluso el propio DESTINO. Hay instrucciones, sin embargo, que slo
tienen un operando, como la siguiente, e incluso ninguno:
INSTRUCCIN
DESTINO
Como ejemplos, aunque no hemos visto an las instrucciones utilizaremos un par de ellas:
MODOS DE DIRECCIONAMIENTO
Una instruccin de 8088/8086 no solo contienen informacin sobre la operacin particular a
realizar, sino que tambin incluye las especificaciones para el tipo de operando a manipular, as
como tambin la posicin de estos operandos. El microprocesador determina el modo de
direccionamiento que es aludido por la sintaxis de la instruccin. Son siete los modos mas
importantes de direccionamiento.
Direccionamiento inmediato
Direccionamiento de registros
Direccionamiento directo
Direccionamiento indirecto de registros
Direccionamiento relativo a base
Direccionamiento indexado directo
Direccionamiento indexado a base
Direccionamiento implcito
Direccionamiento exacto
DIRECCIONAMIENTO INMEDIATO
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
smbolo constante
DW 0fffh;
ahora es una variable
MOV AX,OFFSET dato ; AX = "direccin de memoria" de dato
Porque hay que tener en cuenta que cuando traduzcamos a nmeros el smbolo podra quedar:
17F3:0A11 DW FFF
MOV AX,0A11
DIRECCIONAMIENTO DE REGISTROS
Los operandos, necesariamente de igual tamao, estn contenidos en los registros indicados en la
instruccin:
MOV DX,AX
MOV AH,AL
Este puede ser un valor de 8 o 16 bits, el microprocesador interpreta la longitud del operando por
el nombre del registro.
DIRECCIONAMIENTO DIRECTO
El operando est situado en la direccin indicada en la instruccin, relativa al segmento que se
trate:
MOV AX,[57D1h]
MOV AX,ES:[429Ch]
Esta sintaxis (quitando la 'h' de hexadecimal) sera la que admite el programa DEBUG
(realmente habra que poner, en el segundo caso, ES: en una lnea y el MOV en otra). Al trabajar
con ensambladores, las variables en memoria se pueden referenciar con etiquetas simblicas:
MOV AX,dato
MOV AX,ES:dato
dato
DW 1234h
; AX = [SS*16+BP]
; [ES*16+DI] = AX
RELATIVO DE BASE
La direccin de un operando se obtiene de la suma del numero y el contenido de un registro base
(el BX o el BP), relativo al segmento seleccionado. El modo relativo a base es mas usado
frecuentemente para acceder a estructuras de datos complejas.
MOV AX,desp[DI]
ADD desp[SI],BX
MOV AX,ES:desp[BX][DI]
MOV CS:desp[BX][SI],CX
ES
No
No
con prefijo
con prefijo
con prefijo
con prefijo(1)
Los 386 y superiores admiten otros modos de direccionamiento ms sofisticados, que se vern en
el prximo captulo, despus de conocer todas las instrucciones del 8086. Por ahora, con todos
estos modos se puede considerar que hay ms que suficiente. De hecho, algunos se utilizan en
muy contadas ocasiones.
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.
Supongamos una arquitectura de pila, las operaciones aritmticas no requieren direccionamiento explcito por
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.
DIRECCIONAMIENTO EXTENDIDO
En este modo la direccin efectiva del operando se suministra en los dos bytes siguientes al
cdigo de operacin. Permite el acceso a cualquier posicin dentro del mapa de memoria del
sistema.