MODOS DE DIRECCIONAMIENTO
Modo de direccionamiento: mecanismo que permite conocer la ubicación de un dato o instrucción.
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.
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 funcionamientos:
DIRECCIONAMIENTO DIRECTO:
Direccionamiento mediante registro.
El operando se encuentra contenido en un registro.
Subcampos del campo de operando:
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 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
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.
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:
Ejemplo M68000: MOVE.L D0,12(A0,D2).







No hay comentarios:
Publicar un comentario