MODOS DE DIRECCIONAMIENTO
INTRODUCCION
- 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
- 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
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 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
- 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
• el fondo de la pila
• el puntero de pila (*SP), registro que apunta a la última posición ocupada de la
pila
- Como puntero del direccionamiento se emplea el puntero de pila.
- No es preciso incluir el subcampo CR, y a veces no lleva CD.
- Ejemplo M68000: MOVE.B D0, 24(SP) MOVE.B D0,24(A7)
- Subcampos del campo de operando
- Esquema de funcionamiento
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.
Puede haber preincremento o predecremento (total: 8 posibilidades).
registro índice y un desplazamiento.
- Subcampos del campo de operando
- Ejemplo M68000: MOVE.L D0,12(A0,D2)
Direccionamiento relativo a puntero de pila
- Pila: estructura de tipo LIFO marcada por• el fondo de la pila
• el puntero de pila (*SP), registro que apunta a la última posición ocupada de la
pila
- Como puntero del direccionamiento se emplea el puntero de pila.
- No es preciso incluir el subcampo CR, y a veces no lleva CD.
- Ejemplo M68000: MOVE.B D0, 24(SP) MOVE.B D0,24(A7)
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
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.
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, unregistro índice y un desplazamiento.
- Subcampos del campo de operando
- Ejemplo M68000: MOVE.L D0,12(A0,D2)
No hay comentarios.:
Publicar un comentario