Modos de direcionamiento
- 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.
- DE REGISTRO.- 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.
- DIRECTO.- El dato a cargar en el operando destino
está guardado en una variable (Etiqueta). En este direccionamiento la
dirección efectiva (EA), para una localidad de memoria, está 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
- DE
REGISTRO INDIRECTO.- El
dato a cargar en el operando destino está 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 ] )
- 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 ]
- 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.
- 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 ]
Mas informacion en:
No hay comentarios:
Publicar un comentario