MODOS DE DIRECCIONAMIENTO



ჱ      Conceptos
ჱ      Tipos
Un 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 (OP1) y resultado (RES)

CO
MD
OP1
OP2
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).

Mdir
CR
CD

Tipos:

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.

DIRECCIONAMIENTO DIRECTO
ჱ       El operando se encuentra contenido en un registro.
ჱ        Subcampos del campo de operando.

Mdir
CR

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

Mdir
CD (dirección)



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.
Mdir
CR
CD (desplazamiento)


DIRECCIONAMIENTO RELATIVO A REGISTRO BASE
·         Se emplea como puntero un registro base, que puede ser un registro específico o unocualquiera de los del banco.
·         El registro base utilizado se indica en el subcampoCR.
·         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 subcampoCR.
ჱ        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
Mdir
CR
CD (desplazamiento)


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
Mdir
CR
CD (desplazamiento)


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
Mdir
CR
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.
Mdir
CR1
CR2
CD (desplazamiento)
Ejemplo M68000: MOVE.L D0,12(A0,D2)

No hay comentarios:

Publicar un comentario