1.6 - MODO DE DIRECCIONAMIENTO

MODO DE DIRECCIONAMIENTO.

La forma en que se especifica un operando se denomina modo de direccionamiento, es decir, es un conjunto de reglas que especifican la localización (posición ) de un dato usado durante la ejecución de una instrucción. El 8086 tiene 25 modos de direccionamiento o reglas para localizar un operando de una instrucción.

Los modos de direccionamiento más frecuentes son los que calculan la dirección del operando mediante la suma de la dirección base de un registro segmento, multiplicado por 16 y el valor de un desplazamiento. La gran variedad de direccionamientos proviene de las muchas formas en que se puede determinar el desplazamiento.



En general, los modos de direccionamiento del 8086 se dividen en dos grandes grupos:
 1. Modos de direccionamiento de la memoria de programa:
En la búsqueda de una instrucción, su dirección se obtiene sumando el desplazamiento, contenido en el IP, al valor del registro de segmento CS, multiplicado por 16. Normalmente al terminar la ejecución de una instrucción, el IP se incrementa, con lo que se pasa a direccionar la siguiente instrucción. Las instrucciones de salto y salto a subrutinas pueden modificar el contenido de IP de tres formas diferentes:
• Por direccionamiento relativo. Al contenido del IP se suma, de forma inmediata, un desplazamiento de 8 a 16 bits, con signo, proporcionado por la misma instrucción.
• Por direccionamiento directo. Se carga, en el IP, una nueva dirección presente en la instrucción.
• Por direccionamiento indirecto. El dato, obtenido por cualquiera de las formas de direccionado de la memoria de datos, es interpretado por las instrucciones de salto, como la dirección a la que se debe saltar.
   2. Modos de direccionamiento de la memoria de datos.
• Modo inmediato: El operando se proporciona en el byte o bytes que siguen al código de operación de la instrucción.
Ejemplo: ADD CX,385Fh
• Modo de direccionado por registro: Un registro, definido por la instrucción, contiene el operando.
Ejemplo: ADD CX,AX
• Modo directo: El byte o par de bytes que siguen al código OP de la instrucción dan el desplazamiento de 8 ó 16 bits, que, sumado al contenido del registro DS, determina la dirección efectiva en la que se encuentra el dato a transferir.
Ejemplo: ADD CL,TABLA
• Modo directo indexado: El byte o par de bytes que siguen al código OP representan un desplazamiento que se suma al contenido de uno de los registros índice (DI o SI). El contenido de DS se añade al resultado de la suma, con lo que se obtiene la dirección del operando. Incrementando o decrementando los registros índice, se puede acceder a posiciones de memoria consecutivas.
Ejemplo: ADD CX, [SI+4]
• Modo indirecto: La dirección del operando es el contenido de uno de los siguientes registros: BP, BX, DI o SI.
Ejemplo: ADD CX, [BX]
• Por registro base indexado: El desplazamiento que ha de sumarse a un registro segmento se halla sumando el contenido de un registro índice y un desplazamiento de 8 ó 16 bits, contenido en la instrucción, al contenido de un registro base.
Ejemplo: MOV AX,TABLA[BX][SI]
• Modo relativo a base: El byte o par de bytes que siguen al código OP representan un desplazamiento que se suma al contenido de uno de los registros base (BX o BP). El contenido de DS se añade al resultado de la suma, con lo que se obtiene la dirección del operando.
Ejemplo: MOV AX, [BP]+4
VIDEO RETROALIMENTARIO:
MODO DE DIRECCIONAMIENTO.




Comentarios

Entradas más populares de este blog

LENGUAJE ENSAMBLADOR - INTERRUPCIONES

LENGUAJE DE INTERFAZ - LLAMADAS AL SISTEMA