Está en la página 1de 12

Modos de direccionamientos

I.

Modos de direccionamiento de datos


1. 2. 3. 4. 5. 6. 7. 8. Direccionamiento de registro Direccionamiento inmediato Direccionamiento directo Direccionamiento indirecto por registro Direccionamiento base-ms-ndice Direccionamiento relativo al registro Direccionamiento relativo a base-ms-ndice Direccionamiento ndice escalado (x386 ..) Direccionamiento relativo al programa Direccionamiento directo Direccionamiento indirecto

II.

Modos de direccionamiento de memoria del programa


1. 2. 3.

Observe la gran cantidad de modos de direccionamiento de datos.

Modos de direccionamientos
Segmento Desplazamiento Propsito Especial
CS
IP Direccin de instruccin

SS DS
ES

SP o BP

Direccin de pila.

BX, DI, SI, un nmero Direccin de datos. DI para instrucciones Direccin de destino de sobre cadenas. cadenas.

No se permite la instruccin MOV de segmento a segmento. No se permite que el registro destino sea el segmento de cdigo CS. No son peremidos tamaos mezclados de registros.

Direccionamiento de registro
Transfiere una copia de un byte o palabra

desde el registro o localidad de memoria fuente hacia el registro o localidad de memoria destino.
Ejemplo:
MOV AX,BX
Fuente Generacin de la direccin

Copia el contenido del reg. DX al reg. CX.


Destino Reg. BX

MOV AX,BX

Reg. AX

En los 386 y posteriores es posible transferir una palabra doble

Direccionamiento de registro
Ejemplos:

MOV AL,BL MOV AX,CX MOV SI,DI MOV BX,ES MOV ES,DS MOV BL,DX MOV CS,AX

Copia BL en AL. Copia CX en AX. Copia DI en SI. Copia ES en BX No es permitido No es permitido No es permitido

Direccionamiento inmediato
Transfiere el dato (byte o palabra)

inmediatamente al registro o localidad de memoria destino.


Ejemplo:
MOV CH,3AH

Copia el contenido del reg. DX al reg. CX.


Destino Generacin de la direccin

Fuente

MOV CH,3AH

3AH

Reg. CH

En los 386 y posteriores es posible transferir una palabra doble

Direccionamiento inmediato
Ejemplos:

MOV BL,44 Copia 44 dec. en BL MOV AX,44H Copia 0044H en AX MOV SI,0 Copia 0000H en SI MOV AL,A Copia A ASCII en AL MOV AX,AB Copia BA ASCII en AX

Direccionamiento directo
Se aplica a una istruccin MOV entre una

localidad de memoria y AL, Ax o EAX. La direccin est formada por la suma del desplazamiento ms la direccin dada por defecto en el segmento de datos.
Ejemplo: MOV AL,[1234H] Copia el contenido de la localidad de mem. 11234H a AL.
Fuente Generacin de la direccin Destino Direccin [11234H] DS x 10H + Desplazamiento 10000H + 1234H

MOV [1234H],AX
Cuando DS=1000

Reg. AX

Direccionamiento indirecto por registro


Permite direccionar cualquier localidad de

memoria mediante una direccin de desplazamiento contenida en: BP, BX, DI y SI.
Ejemplo:
MOV [BX],CL

Copia el contenido del reg. CL a la localidad de memoria direccionada por BX, en DS.
Fuente Generacin de la direccin Destino Direccin [10300H] DS x 10H + BX 10000H + 0300H

MOV [BX],CL
Cuando DS=1000

Reg. CL

Direccionamiento base-ms-ndice
Se utiliza un reg. base (BP o BX) y un reg.

ndice (DI o SI) para direccionar indirectamente la memoria. Ejemplo:


MOV [BX+SI],BP Copia el contenido del reg. BP a la direccin de mem. direccionada por BX + SI en el seg. de datos.
Fuente Generacin de la direccin Destino Direccin [10500H] DS x 10H + BX + SI 10000H + 0300H + 0200H

MOV [BX+SI],BP
Cuando DS=1000

Reg. BP

Direccionamiento relativo a registro


Los datos de un segmento de memoria son

direccionados sumando el desplazamiento al contenido de un registro base o ndice (BP, BX, DI o SI).
Ejemplo:
MOV CL,[BX+4] Copia el contenido de la localidad de mem. del DS direccionada por BX ms 4 en CL.
Fuente Generacin de la direccin Destino Reg. CL DS x 10H + BX + 4 10000H + 0300H + 4 Direccin [10304H]

MOV CL,[BX+4]
Cuando DS=1000

Direccionamiento relativo a basems-ndice


Se utiliza un reg. base (BP o BX) y un reg.

ndice (DI o SI) ms un desplazamiento para formar la direccin de memoria. Es utilizado a menudo para direccionar un arreglo bidimensional de datos de memoria.
Ejemplo: MOV ARRAY[BX+SI],DX Copia DX a la localidad de mem del DS direccionada por la suma de ARRAY, BX y SI.
Fuente Generacin de la direccin Destino Direccin [11500H]
DS x 10H + ARRAY + BX + SI 10000H + 1000H + 0300H + 0200H

MOV ARRAY[BX+SI],DX

Reg. DX

Cuando DS=1000, ARRAY=1000H

Direccionamiento ndice escalado


Exclusivo para procesadores x386 y posteriores. Utiliza

dos registros de 32 bits (uno base y otro dice). El reg. ndice es multiplicado por un factor de escalamiento 1X, 2X, 4X u 8X. El factor 1X est implicito. 2X es empleado para direccionar arreglos de mem. de palabras de 16 bits. 4X para palabras dobles y 8X para areglos de mem. de palabra cudruple. Ejemplo:
MOV [EBX+2x ESI],AX Copia AX en la loc. De mem. Del DS direccionada pro la suma EBX ms dos veces ESI.
Fuente Generacin de la direccin Destino Direccin [10700H]
DS x 10H + EBX + 2 x ESI 10000H + 00000300H + 00000400H

MOV [EBX+2x ESI],AX

Reg. AX

Cuando DS=1000, EBX=300H, ESI=200H