El documento describe diferentes modos de direccionamiento en lenguajes de interfaz, incluyendo direccionamiento inmediato, de registro, directo, de registro indirecto, relativo a la base, indexado directo e indexado de base. Cada modo especifica cómo se obtiene la dirección efectiva del operando fuente para cargar datos en el operando destino.
2. INMEDIATO
El dato a cargar en el operando
destino es una constante. El
usuario especifica un byte o
palabra como operando fuente.
Esta constante se ensambla como
parte de la instrucción.
Por ejemplo:
MOV AX,18;
Coloca el num. 18 en el reg. AX.
3. DE REGISTRO
El dato a cargar en el operando El
dato a cargar en el operando
destino se obtiene de un registro.
Ejemplo :
MOV AX, BX
Es un ejemplo de direccionamiento
de registro en donde la unidad de
ejecución (EU) toma el operando
del registro BX, determina como
destino el registro AX y ordena a la
ALU llevar a cabo la operación.
4. DIRECTO
El dato a cargar en el operando destino
esta guardado en una variable
(Etiqueta). En este direccionamiento la
dirección efectiva (EA), para una
localidad de memoria, esta contenida
en la instrucción. Para obtener la
dirección de 20 bits, se suman el
desplazamiento que tiene la etiqueta y
el contenido del registro DS. La
siguiente instrucción es un ejemplo de
este tipo de direccionamiento.
MOV AX, VAR1
Donde previamente se definió en el
segmento de datos a VAR1
VAR1 DB 20H
5. DE REGISTRO INDIRECTO
El dato a cargar en el operando destino
esta guardado en una variable
(Normalmente un arreglo) y se carga al
operando destino indirectamente a través
de uno de los siguientes registros: BX, BP,
SI o DI. Para evitar confundir este modo
de direccionamiento con el de registro, en la
instrucción, los registros deben aparecer
entre paréntesis rectangulares. Como la EA
es una dirección y no el contenido de una
localidad de memoria, antes de utilizar los
registros mencionados, estos deben contener
direcciones. Una técnica para asegurar lo
anterior es utilizar el operador OFFSET.
MOV BX, OFFSET ARREGLO
Este modo de direccionamiento se puede
usar para colocar el contenido de la
localidad de memoria a la que apunta BX,
por ejemplo en AX.
MOV AX, [ BX ]
Donde [BX] es un desplazamiento relativo
a DS ( DS:[ BX ] )
6. RELATIVO A LA BASE
Al hacer uso de este modo de
direccionamiento, la EA del
operando fuente se obtiene al
sumar un desplazamiento a los
siguientes registros: BP o BX. En
este caso, los registros deben
contener la dirección del
desplazamiento. Un ejemplo del
uso de este tipo de
direccionamiento lo ofrece la
siguiente instrucción:
MOV AX, [ BX+2 ]
7. INDEXADO DIRECTO
En este modo, la (EA) es la suma del
contenido de un registro índice (SI o DI)
y un desplazamiento. Un ejemplo
común lo construye una secuencia de
instrucciones, donde primero se carga
una dirección en un registro índice y
después la misma se combina con una
localidad de memoria.
MOV SI, 2
MOV AX, ARREGLO[ SI ]
En este caso, en el registro AX se coloca
el contenido de la localidad de memoria
cuya dirección es la de ARREGLO + 2.
8. INDEXADO DE BASE
La (EA) es la suma de los
contenidos del registro base
(BX), un registro índice (SI o DI)y
un desplazamiento (opcional).
La siguiente es una secuencia de
instrucciones que ilustra este
tipo de direccionamiento.
MOV BX,OFFSET
ETIQUETA
MOV SI,
MOV AX,[ BX + SI +2 ]