Este documento describe los diferentes modos de direccionamiento en lenguaje ensamblador, que son las formas de especificar los operandos dentro de una instrucción. Describe brevemente los modos inmediato, directo, indirecto, de registro, indexado respecto a una base y de direccionamiento de registro base. Estos modos especifican cómo se calcula la dirección de memoria efectiva de un operando usando información en registros y/o constantes.
1. 1.2.3 MODOS DE DIRECCIONAMIENTO
Son las diferentes maneras de especificar en informática un operando
dentro de una instrucción (lenguaje ensamblador). Cómo se especifican e
interpretan las direcciones de memoria según las instrucciones.
Un modo de direccionamiento especifica la forma de calcular la dirección de
memoria efectiva de un operando mediante el uso de la información contenida en
registros y / o constantes, contenida dentro de una instrucción de la máquina o en
otra parte.
Indirecto
En este modo de direccionamiento no es necesario poner ninguna dirección de
forma explícita, ya que en el propio código de operación se conoce la dirección del
(de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere
operar.
Un ejemplo de este tipo de direccionamiento lo podemos encontrar en la
arquitectura de acumulador (AC) donde siempre hay un parámetro implícito y este
es el AC.
Para finalizar y dejar este modo de direccionamiento generalizado para las
arquitecturas más usuales, remarcamos que también podemos encontrarlo en la
arquitectura con registros de propósito general, por ejemplo con órdenes como set
c, que pone a 1 el registro c (acarreo).
Inmediato
En la instrucción está incluido directamente el operando.
En este modo el operando es especificado en la instrucción misma. En otras
palabras, una instrucción de modo inmediato tiene un campo de operando en vez
de un campo de dirección. El campo del operando contiene el operando actual que
se debe utilizar en conjunto con la operación especificada en la instrucción. Las
instrucciones de modo inmediato son útiles para inicializar los registros en un valor
constante.
Cuando el campo de dirección especifica un registro del procesador, la instrucción
se dice que está en el modo de registro.
Función:
ejemplo:MOV A,#17H
2. Directo
El campo de operando en la instrucción contiene la dirección en memoria donde se
encuentra el operando.
En este modo la dirección efectiva es igual a la parte de dirección de la instrucción.
El operando reside en la memoria y su dirección es dada directamente por el
campo de dirección de la instrucción. En una instrucción de tipo ramificación el
campo de dirección especifica la dirección de la rama actual.
Con este tipo de direccionamiento, la dirección efectiva es contenida en la misma
instrucción, tal como los valores de datos inmediatos que son contenidos en la
instrucción. Un procesador de 16 bits suma la dirección efectiva al contenido del
segmento de datos previamente desplazado en 4 bits para producir la dirección
física del operando.
Función:
Ejemplo: MOV A,17H
3. Indirecto
El campo de operando contiene una dirección de memoria, en la que se encuentra
la dirección efectiva del operando.
Función:
Ejemplo: MOV A,@17H
Absoluto
El campo de operando contiene una dirección en memoria, en la que se encuentra
la instrucción.
De registro
Sirve para especificar operandos que están en registros.
Ejemplo: MOV A,R0
4. Indirecto mediante registros
El campo de operando de la instrucción contiene un identificador de registro en el
que se encuentra la dirección efectiva del operando.
En este modo el campo de la dirección de la instrucción da la dirección en donde la
dirección efectiva se almacena en la memoria. El control localiza la instrucción de
la memoria y utiliza su parte de dirección para accesar la memoria de nuevo para
leer una dirección efectiva. Unos pocos modos de direccionamiento requieren que
el campo de dirección de la instrucción sea sumado al control de un registro
especificado en el procesador.
La dirección efectiva en este modo se obtiene del siguiente cálculo:
Dir. Efectiva = Dir. de la parte de la instrucción + Contenido del registro del
procesador
Función:
Ejemplo: MOV A,@R0
5. De desplazamiento
Combina el modo directo e indirecto mediante registros.
De pila
Se utiliza cuando el operando está en memoria y en la cabecera de la pila.
Este direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO), las
cuales están marcados por el fondo de la pila y el puntero de pila (*SP), El puntero
de pila apunta a la última posición ocupada. Así, como puntero de
direccionamiento usaremos el SP. El desplazamiento más el valor del SP nos dará
la dirección del objeto al que queramos hacer referencia. En ocasiones, si no existe
C. de desplazamiento solo se trabajara con la cima de la pila. Este tipo de
direccionamiento nos aporta flexibilidad pero por el contrario, es mucho más
complejo que otros tipos estudiados más arriba.
Indexado respecto a una base
En este modo el contenido de un registro índice se suma a la parte de dirección de
la instrucción para obtener la dirección efectiva.
El registro índice es un registro CPU especial que contiene un valor índice. Un
campo de dirección de la instrucción define la dirección inicial del arreglo de datos
en la memoria. Cada operando del arreglo se almacena en la memoria en relación
con la dirección inicial.
La distancia entre la dirección inicial y la dirección del operando es el valor del
índice almacenado en el registro de índice. Cualquier operando en el arreglo puede
accesarse con la misma instrucción siempre y cuando el registro índice contenga el
valor de índice correcto. El registro índice puede incrementarse para facilitar el
acceso a operandos consecutivos. Nótese que si una instrucción de tipo índice no
incluye un campo de dirección en su formato, la instrucción se convierte al modo
de operación de indirecto por registro.
Algunas computadoras dedican un registro de CPU para que funcione
exclusivamente como un registro índice. De manera implícita este registro participa
cuando se utiliza una instrucción de modo índice. En las computadoras con muchos
registros de procesador, cualquiera de los registros de la CPU pueden contener el
numero de índice. En tal caso, el registro debe estar especificado en forma
explícita en un campo de registro dentro del formato de instrucción.
6. Direccionamiento de registro base
En este modo, el contenido de un registro base se suma a la parte de dirección de
la instrucción para obtener la dirección efectiva. Esto es similar al modo de
direccionamiento indexado, excepto en que el registro se denomina ahora registro
base, en lugar de registro índice. La diferencia entre los dos modos esta en la
manera en que se usan mas que en la manera en que se calculan. Se considera
que un registro base contiene una dirección base y que el campo de dirección de
la instrucción proporciona un desplazamiento en relación con esta dirección base.
El modo de direccionamiento de registro base se utiliza en las computadoras para
facilitar la localización de los programas en memoria.
7. BIBLIOGRAFIA
o Irma Araceli Pool Cocom
Correo: Irma949[arroba]hotmail.com
Página web: http://www.monografias.com/trabajos14/leng-ensamblador/leng-
ensamblador.shtml#MODOS
o Instituto Tecnológico de la Paz
Tutorial del lenguaje ensamblador
Página web: http://sistemas.itlp.edu.mx/tutoriales/ensamblador/tem3_4_.htm
o La enciclopedia de libre contenido: Wikipedia
Pagina web: http://es.wikipedia.org/wiki/Modos_de_direccionamiento