MODOS DE DIRECCIONAMIENTO
- Modo de direccionamiento: mecanismo que permite conocer la
ubicación de un dato o
instrucción.
- Objeto: dato o instrucción que se desea direccionar.
- Un computador dispone de varios modos de direccionamiento.
- Objetivos de los modos de direccionamiento:
• Reducir el espacio ocupado en memoria por las
instrucciones.
• Permitir la reubicación del código.
• Facilitar el manejo de las estructuras de datos.
Modos de direccionamiento en las instrucciones
- Los operandos y resultado de una instrucción son accedidos
a través de modos de direccionamiento.
- Cada campo de operando o resultado en una instrucción
contiene información acerca
del modo de direccionamiento empleado para acceder a él.
• Código de operación (CO) y modificador (MD)
• Operandos (OPi) y resultado (RES)
- Cada campo de operandos o resultado tendrá los siguientes
subcampos:
• Mdir: especificador del modo de direccionamiento (ocupa
pocos bits).
• CR: campo especificador del registro involucrado en el
modo de
direccionamiento (ocupa pocos bits).
• CD: campo que puede contener un operando inmediato, una
dirección o un
desplazamiento (suele ocupar bastante espacio).
DIRECCIONAMIENTO INMEDIATO
En este modo es el operando el que figura en la instrucción no su dirección. En otras palabras el campo de operando contiene él mismo, sin transformación alguna, la información sobre la que hay que operar. Este modo es útil para inicializar registros o palabras de memoria con un valor constante.
En este modo es el operando el que figura en la instrucción no su dirección. En otras palabras el campo de operando contiene él mismo, sin transformación alguna, la información sobre la que hay que operar. Este modo es útil para inicializar registros o palabras de memoria con un valor constante.
- La instrucción contiene al propio objeto.
- Se emplea cuando la instrucción contiene un valor
constante.
- El tamaño del operando viene determinado por el espacio
reservado para él en el
formato de instrucción.
- Subcampos del campo de operando
Esquema de funcionamiento
DIRECCIONAMIENTO DIRECTO
el campo de dirección de una instrucción puede especificar una palabra de
memoria o un registro del procesador. Cuando se da este último caso se dice que el operando está especificado con direccionamiento directo por registro, en tal caso, el operando reside en uno de los registros del procesador que es seleccionado por un campo de registro de k bits en la instrucción. Este campo de k bits puede especificar uno de 2k registros
Direccionamiento mediante registro
- El operando se encuentra contenido en un registro.
- Subcampos del campo de operando
Las ventajas de este modo son:
El acceso a los registros es muy rápido, por tanto el direccionamiento por registro debe usarse en las variables que se usen con más frecuencia para evitar accesos a memoria que son más lentos, un ejemplo muy típico del uso de este direccionamiento son los índices de los bucles
El número de bits necesarios para especificar un registro es mucho más pequeño que el necesario para especificar una dirección de memoria, esto es debido a que el número de registros del procesador es muy pequeño comparado con el número de direcciones de memoria. Sin embargo, hay que tener en cuenta que en los ordenadores modernos el número de registros ha aumentado considerablemente.
Direccionamiento directo absoluto
- La instrucción contiene la dirección de memoria exacta
donde se encuentra el
operando.
- El operando se encuentra en memoria.
- Subcampos del campo de operando
• El rango de CD debe ser capaz de direccionar toda la
memoria.
• Si no es capaz: direccionamiento de página base.
Esquema de funcionamiento
DIRECCIONAMIENTO RELATIVO A REGISTRO
Este modo de direccionamiento es usado muy frecuentemente en programas cuyo código deba ser independiente de la posición de memoria donde estén situados (programas relocalizables) ya que el desplazamiento es independiente de la localización del programa. También se usa con mucha frecuencia en instrucciones de bifurcación.
- El operando se encuentra en memoria.
- La dirección del objeto ha de ser calculada a partir de la
suma del contenido de un
cierto registro (que funciona como un puntero) y un
desplazamiento (contenido en la
instrucción).
- Subcampos del campo de operando
Direccionamiento relativo a registro base
- Se emplea como puntero un registro base, que puede ser un
registro específico o uno
cualquiera de los del banco.
- El registro base utilizado se indica en el subcampo CR.
Esquema de funcionamiento
Direccionamiento relativo a contador de programa
- Como puntero se emplea el contador de programa.
- Este direccionamiento se emplea para acceder a
instrucciones (saltos relativos o
bucles) o para referenciar datos cercanos al código.
- No es preciso introducir el subcampo CR.
Esquema de funcionamiento
DIRECCIONAMIENTO INDEXADO
- Similar al direccionamiento relativo a registro base.
• El operando se encuentra en memoria.
• Registro índice: se modifica a menudo en la ejecución del
programa.
- Subcampos del campo de operando
- El registro índice puede permitir incrementos o
decrementos antes o después de
obtenerse la dirección del objeto:
• Preincremento
• Predecremento
• Posincremento
• Posdecremento
- El incremento o decremento puede depender del tamaño del
objeto referenciado.
- Ejemplos M68000 (sólo predecremento y posincremento):
MOVE.B D0,(A0)+ incrementa A0 en 1
MOVE.W D0,-(A2) decrementa A2 en 2
MOVE.L (A5)+,D3 incrementa A5 en 4
- Utilizado para recorrer tablas o vectores.
DIRECCIONAMIENTO INDIRECTO
- El operando se encuentra en memoria.
- La instrucción contiene una dirección que se emplea para
leer en memoria una
dirección intermedia que será la verdadera dirección del
objeto buscado.
- Subcampos del campo de operando
Esquema
de funcionamiento
COMBINACIONES DE MODOS BÁSICOS DE DIRECCIONAMIENTO
Direccionamiento indirecto a registro
- Es similar al direccionamiento indirecto, pero la
dirección intermedia está contenida en
un registro, no en una posición de memoria.
- La instrucción contendrá la referencia al registro.
- Subcampos del campo de operando
- Coincide con el direccionamiento relativo a registro base
sin usar desplazamiento.
- Ejemplo M68000: MOVE.L D0,(A4)
Combinación de modos indirecto e indexado
- Subcampos del campo de operando
- Preindexado: El contenido del registro índice se suma al
de la dirección indirecta en el
primer paso de la indirección
- Posindexado: el contenido del registro índice se suma a la
dirección intermedia en el
segundo paso de la indirección.
<!--[endif]-->
- Puede haber preincremento o predecremento (total: 8
posibilidades).
Direccionamiento relativo a registro con índice y desplazamiento
- La dirección del objeto se obtiene sumando el contenido de
un registro base, un
registro índice y un desplazamiento.
- Subcampos del campo de operando
No hay comentarios:
Publicar un comentario