Sei sulla pagina 1di 4

Modos de direccionamiento

Objetivos Especficos
Conocer el concepto de modos de direccionamiento y acceso a memoria.
Conocer los principales modos de direccionamiento
Saber cundo utilizarlos.
Saber qu combinaciones de modos de direccionamiento son vlidas y cules no.

Teora
Modos de direccionamiento
Se les llama modos de direccionamiento a las distintas formas de combinar los operandos
segn el acceso que se hace a memoria.

Dicho de otra manera, un modo de direccionamiento ser una forma de parmetro para
las instrucciones. Una instruccin que lleve un parmetro, por lo tanto, usar un modo de
direccionamiento, que depender de cmo direccionar (accesar) al parmetro; una
instruccin de dos parmetros, combinar dos modos de direccionamiento.

Direccionamiento implcito

Depende solamente de la instruccin, es decir, la instruccin no lleva parmetros.


Particularmente en instrucciones que no accesan memoria, o bien que tienen una
forma especfica de accesarla.
Ejemplos: PUSHF, POPF, NOP

Modo registro

Usa solamente registros como operandos


Es el ms rpido, pues minimiza los recursos necesarios (toda la informacin
fluye dentro del EU del CPU)

Ejemplo:
MOV AX, BX

Modo inmediato

Tiene dos operandos: un registro y una constante que se usa por su valor.
El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al hacer
el "fetch" de la instruccin.
Por tanto, es rpido aunque no tanto como el modo registro; requiere ir al BIU por
el dato.

Ejemplo:

MOV AH, 9

Modo directo

Uno de los operandos involucra una localidad especfica de memoria


El valor constante se tiene que buscar en memoria, en la localidad especificada.
Es ms lento que los anteriores, pero es el ms rpido para ir a memoria, pues ya
"sabe" la localidad, la toma de la instruccin y no la tiene que calcular.

Ejemplo:

MOV AH, [0000]


MOV AH, Variable

Estas dos instrucciones seran equivalentes, si Variable est, por ejemplo, en la localidad
0 de memoria. En la forma primitiva del lenguaje de mquina, como el primer ejemplo,
se tiene que indicar "mover a AH el contenido (indicado por los corchetes), de la
localidad 0 de los datos (lo de los datos es implcito). El lenguaje Ensamblador, sin
embargo, nos permite la abstraccin del uso de variables, pero como una variable tiene
una localidad determinada en memoria, para el procesador funciona igual. La nica
diferencia consiste en que el programador no tiene que preocuparse por la direccin, ese
manejo lo hace automticamente el Ensamblador.

Modo indirecto

Se usan los registros SI, DI como apuntadores


El operando indica una localidad de memoria, cuya direccin (slo la parte
desplazamiento) est en SI o DI.
Es ms lento que los anteriores, pues tiene que "calcular" la localidad

Ejemplos:

MOV AL, [SI]


MOV BL, ES:[SI] ; Aqu se dice que se usa un "segment override", donde se
indica que en vez de usar el segmento de datos por defecto, se use en su lugar
como referencia el segmento extra.

Modo indexado de base

Formato:
[
BX o BP
+ SI o DI (opcionales)
+ constante (opcional)
]

BX o BP indica una localidad base de la memoria

A partir de BX o BP, se puede tener un desplazamiento variable y uno constante

La diferencia es el segmento sobre el que trabajan por defecto:

BX por defecto en el segmento de datos


BP por defecto en el segmento de pila.

Ejemplos:

MOV AX, [BX]


MOV DX, [BX+2]
MOV CX, [BX+DI]
MOV DL, [BX+SI+3]

Tabla de combinaciones posibles

De acuerdo a lo que se ha visto, y a la regla de que no se permiten dos accesos a memoria


en la misma instruccin, se pueden combinar en la siguiente forma:

Modo Modo
Registro Inmediato Directo Indirecto Indexado
destino Fuente
Registro
No se puede tener inmediato a la izquierda
Inmediato
(dnde se depositara la informacin?)
Directo
Estas combinaciones no se pueden
Indirecto
(seran dos accesos a memoria
Indexado en la misma instruccin)

Bibliografa
Manual de Turbo Assembler, versin 2.0

Un poco, captulo 10 del libro de texto (tiene un enfoque distinto)

Pgina por Bruno Guardia R. ITESM

bguardia@itesm.mx

Creada: Lu 26-Ago-96
ltima actualizacin: Do 9-Feb-97

Potrebbero piacerti anche