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