Está en la página 1de 3

2/6/2021 Sistema Virtual de Educación [Contenidos]

6.2. Modos de direccionamiento


El término modos de direccionamiento se refiere a la forma en que se especifica el operando de una instrucción. El modo de direcciona
especifica una regla para interpretar o modificar el campo de dirección de la instrucción antes de que se ejecute realmente el operando.

Los modos de direccionamiento para instrucciones 8086 se dividen en dos categorías:

1) Modos de direccionamiento para datos

2) Modos de direccionamiento para rama

Los modos de direccionamiento de memoria de 8086 brindan acceso flexible a la memoria, lo que le permite acceder fácilmente a va
matrices, registros, punteros y otros tipos de datos complejos. La clave para una buena programación en lenguaje ensamblador es
adecuado de los modos de direccionamiento de memoria.

La instrucción de un programa en lenguaje ensamblador consta de dos partes:

La dirección de memoria de un operando consta de dos componentes:

Dirección de inicio del segmento de memoria

Dirección efectiva o compensación

Una compensación se determina agregando cualquier combinación de tres elementos de dirección: desplazamiento, base e índice.

- Desplazamiento

Es un valor inmediato de 8 bits o 16 bits dado en la instrucción.

- Base

Contenido del registro base, BX o BP

- Índice

Contenido del registro de índice SI o DI

Según las diferentes formas de especificar un operando mediante el microprocesador 8086, el 8086 utiliza diferentes mod
direccionamiento.

Los modos de direccionamiento utilizados por el microprocesador 8086 se describen a continuación.

Modo implícito

En el direccionamiento implícito, el operando se especifica en la propia instrucción. En este modo, los datos tienen una longitud de 8 o 1
los datos son parte de la instrucción. Las instrucciones de dirección cero están diseñadas con el modo de direccionamiento implícito.

CLC (used to reset Carry flag to 0)

Modo de direccionamiento inmediato (símbolo #)

En este modo, los datos están presentes en el campo de dirección de la instrucción. Diseñado como un formato de instrucción de direcció

Nota

La limitación en el modo inmediato es que el rango de constantes está restringido por el tamaño del campo de dirección.

MOV AL, 35H (mueva los datos 35H al registro AL)


Modo de registro
https://evirtual.espe.edu.ec/programas_scorm.cgi?id_curso=19195&id_unidad=211956&id_pkg=49496&wAccion=ver_scos 1/3
2/6/2021 Sistema Virtual de Educación [Contenidos]

MOV AX, CX (mover el contenido del registro CX al registro AX)

Modo de registro indirecto

En este direccionamiento, el desplazamiento del operando se coloca en cualquiera de los registros BX, BP, SI, DI como se especifica
instrucción. La dirección efectiva de los datos está en el registro base o en un registro de índice especificado por la instrucción. A
requieren dos registros de referencia para acceder a los datos. Las CPU 8086 le permiten acceder a la memoria indirectamente a tra
un registro utilizando los modos de direccionamiento indirecto del registro.

MOV AX, [BX] (mueve el contenido de las ubicaciones de memoria direccionadas por el registro BX al registro AX)

Autoindexado (modo de incremento)

La dirección efectiva del operando es el contenido de un registro especificado en la instrucción. Después de acceder al operando, el con
de este registro se incrementa automáticamente para apuntar a la siguiente ubicación de memoria consecutiva. (R1) +.

Aquí se requiere una referencia de registro, una referencia de memoria y una operación de ALU para acceder a los datos.

Add R1, (R2)+ // OR

R1 = R1 +M[R2]

R2 = R2 + d

Útil para recorrer matrices en un bucle. R2 - inicio de la matriz d- tamaño de un elemento

Autoindexado (modo decreciente)

La dirección efectiva del operando es el contenido de un registro especificado en la instrucción. Antes de acceder al operando, el contenid
este registro se decrementa automáticamente para apuntar a la ubicación de memoria consecutiva anterior. - (R1)

Aquí se requiere una referencia de registro, una referencia de memoria y una operación de ALU para acceder a los datos.

Add R1,-(R2) //OR

R2 = R2-d

R1 = R1 + M[R2]
El modo de decremento automático es el mismo que el modo de incremento automático. Ambos también se pueden usa
implementar una pila como push y pop. Los modos de incremento automático y decremento automático son útiles para implem
estructuras de datos "Último en entrar, primero en salir".

Modo de direccionamiento directo / direccionamiento absoluto (símbolo [])

El desplazamiento del operando se indica en la instrucción como un elemento de desplazamiento de 8 o 16 bits. En este mo
direccionamiento, la dirección efectiva de 16 bits de los datos es parte de la instrucción.
Aquí solo se requiere una operación de referencia de memoria para acceder a los datos.

ADD AL, [0301] // agregue el contenido de la dirección de desplazamiento 0301 a AL

Modo de direccionamiento indirecto (símbolo @ o ())

En este modo, el campo de instrucción de dirección contiene la dirección de la dirección efectiva. Aquí se requieren dos referencias.

1.ª referencia para conseguir dirección efectiva.


https://evirtual.espe.edu.ec/programas_scorm.cgi?id_curso=19195&id_unidad=211956&id_pkg=49496&wAccion=ver_scos 2/3
2.ª referencia para acceder a los datos.
2/6/2021 Sistema Virtual de Educación [Contenidos]

En este modo, la dirección efectiva está en el registro y el nombre del registro correspondiente se mantendrá en el campo de direcc
una instrucción.

Aquí se requiere una referencia de registro, una referencia de memoria para acceder a los datos.
2. Memoria indirecta

En este modo, la dirección efectiva está en la memoria, y la dirección de memoria correspondiente se mantendrá en el campo de di
de una instrucción.

Aquí se requieren dos referencias de memoria para acceder a los datos.


Modo de direccionamiento indexado

El desplazamiento del operando es la suma del contenido de un registro de índice SI o DI y un desplazamiento de 8 o 16 bits.

Ejemplo
MOV AX, [SI +05]

Direccionamiento indexado basado

El desplazamiento del operando es la suma del contenido de un registro base BX o BP y un registro de índice SI o DI.
Ejemplo

ADD AX, [BX + SI]

Según la transferencia de control, los modos de direccionamiento son:


Modo de direccionamiento relativo de PC

El modo de direccionamiento relativo de PC se usa para implementar la transferencia de control dentro del segmento. En este modo, la di
efectiva se obtiene agregando desplazamiento a la PC.

EA = PC + Valor del campo de dirección


PC = PC + Valor relativo.

Modo de direccionamiento de registro base


El modo de direccionamiento de registro base se utiliza para implementar la transferencia de control entre segmentos. En este m
dirección efectiva se obtiene agregando el valor del registro base al valor del campo de dirección.

EA = Registro base + Valor del campo de dirección

PC = Registro base + Valor relativo

Nota

1. Ambos modos de direccionamiento son adecuados para la reubicación de programas en tiempo de ejecución.

2. El modo de direccionamiento de registro basado es el más adecuado para escribir códigos independientes de la posición.

Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0

https://evirtual.espe.edu.ec/programas_scorm.cgi?id_curso=19195&id_unidad=211956&id_pkg=49496&wAccion=ver_scos 3/3

También podría gustarte