Estructura y Tecnología de Computadores I
                                  Modos de direccionamiento                     -1-

MODOS DE DIRECCIONAMIENTO
1. Introducción
2. Direccionamiento inmediato
3. Direccionamiento directo
4. Direccionamiento relativo a registro
5. Direccionamiento indexado
6. Direccionamiento indirecto
7. Combinaciones de modos básicos de direccionamiento
8. Modos de direccionamiento del microprocesador M68000
9. Direccionamiento paginado y direccionamiento segmentado


1. INTRODUCCIÓN

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

- Cada campo de operandos o resultado tendrá los siguientes subcampos:

                                 Mdir CR CD
       • 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).
Estructura y Tecnología de Computadores I
                                  Modos de direccionamiento                         -2-

2. 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
                         Mdir        CD (operando inmediato)

- Esquema de funcionamiento




- Ejemplo M68000:             MOVE.B #5,D0
Estructura y Tecnología de Computadores I
                                  Modos de direccionamiento           -3-

3. DIRECCIONAMIENTO DIRECTO

Direccionamiento mediante registro

- El operando se encuentra contenido en un registro.

- Subcampos del campo de operando
                                        Mdir     CR

- Esquema de funcionamiento




- Ejemplos M68000:           MOVE.B #5,D0
                             MOVE.W #$23A0,A3
Estructura y Tecnología de Computadores I
                                 Modos de direccionamiento                       -4-

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)

       • El rango de CD debe ser capaz de direccionar toda la memoria.
       • Si no es capaz: direccionamiento de página base.

- Esquema de funcionamiento




- Ejemplo M68000:           MOVE.B D0,$A61350
Estructura y Tecnología de Computadores I
                                  Modos de direccionamiento                             -5-

4. 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 uno
cualquiera de los del banco.

- El registro base utilizado se indica en el subcampo CR.

- Esquema de funcionamiento




- Ejemplo M68000:            MOVE.W 5(A0),D1
Estructura y Tecnología de Computadores I
                                   Modos de direccionamiento                             -6-

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




- Ejemplo M68000:             MOVE.L 24(PC),D0


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)
Estructura y Tecnología de Computadores I
                                   Modos de direccionamiento                       -7-

5. 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 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.


6. 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
                      Mdir CD (dirección indirecta)

- Esquema de funcionamiento
Estructura y Tecnología de Computadores I
                                   Modos de direccionamiento                            -8-

7. 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

- 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
                          Mdir     CR      CD (dirección indirecta)

- Preindexado: El contenido del registro índice se suma al de la dirección indirecta en el
primer paso de la indirección.
Estructura y Tecnología de Computadores I
                                  Modos de direccionamiento                               -9-

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

- Ejemplo M68000:            MOVE.L D0,12(A0,D2)
Estructura y Tecnología de Computadores I
                                   Modos de direccionamiento                       -10-

8. MODOS DE DIRECCIONAMIENTO DEL MICROPROCESADOR M68000

- Inmediato (sólo operandos fuente):
                      MOVE.B #$48,D3

- Mediante registro
       • De datos:             MOVE.B #$48,D3
       • De direcciones:       MOVE.W #$4AE8,A5

- Absoluto directo:    MOVE.W D2,$4AB12F0

- Relativo a registro de direcciones (indirecto a registro):
                       MOVE.L $345A0A5F,(A6)

- Relativo a registro de direcciones con desplazamiento:
                       MOVE.L $345A0A5F,3(A6)

- Relativo a registro de direcciones con desplazamiento e índice:
                       MOVE.L $345A0A5F,4(A1,A2)
                       MOVE.L $345A0A5F,4(A4,D7)

- Relativo a registro de direcciones con predecremento:
                       MOVE.W D0,-(A7)

- Relativo a registro de direcciones con posincremento:
                       MOVE.W D0,(A7)+

- Relativo a contador de programa con desplazamiento (sólo operando fuente):
                      MOVE.L 4(PC),$345A0A5F

- Relativo a contador de programa con desplazamiento e índice (sólo operando fuente):
                      MOVE.L 4(PC,A2),$345A0A5F
                      MOVE.L 4(PC,D7),$345A0A5F
Estructura y Tecnología de Computadores I
                                  Modos de direccionamiento                         -11-

9. DIRECCIONAMIENTO PAGINADO Y DIRECCIONAMIENTO
SEGMENTADO

Direccionamiento paginado

- La memoria se encuentra dividida en páginas (bloques de igual longitud).

- Las direcciones se componen de dos partes:
        • Indicador de página (IP): en un registro específico o de propósito general de
           la máquina.
        • Dirección de palabra (DP): en el campo CD de la instrucción.

- Concatenando IP y DP se obtiene la dirección completa.

- Esquema de funcionamiento




Direccionamiento segmentado

- La memoria se divide en porciones de tamaño variable llamadas segmentos.

- Tabla de segmentos: contiene la dirección del comienzo y del final de cada segmento
en memoria.

- Problemas: fraccionamiento de memoria.

- Ventajas: se pueden definir segmentos de tamaño arbitrario.

Modos de Direccionamiento

  • 1.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -1- MODOS DE DIRECCIONAMIENTO 1. Introducción 2. Direccionamiento inmediato 3. Direccionamiento directo 4. Direccionamiento relativo a registro 5. Direccionamiento indexado 6. Direccionamiento indirecto 7. Combinaciones de modos básicos de direccionamiento 8. Modos de direccionamiento del microprocesador M68000 9. Direccionamiento paginado y direccionamiento segmentado 1. INTRODUCCIÓN - 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) CO MD OP1 OP2 RES - Cada campo de operandos o resultado tendrá los siguientes subcampos: Mdir CR CD • 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).
  • 2.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -2- 2. 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 Mdir CD (operando inmediato) - Esquema de funcionamiento - Ejemplo M68000: MOVE.B #5,D0
  • 3.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -3- 3. DIRECCIONAMIENTO DIRECTO Direccionamiento mediante registro - El operando se encuentra contenido en un registro. - Subcampos del campo de operando Mdir CR - Esquema de funcionamiento - Ejemplos M68000: MOVE.B #5,D0 MOVE.W #$23A0,A3
  • 4.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -4- 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) • El rango de CD debe ser capaz de direccionar toda la memoria. • Si no es capaz: direccionamiento de página base. - Esquema de funcionamiento - Ejemplo M68000: MOVE.B D0,$A61350
  • 5.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -5- 4. 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 uno cualquiera de los del banco. - El registro base utilizado se indica en el subcampo CR. - Esquema de funcionamiento - Ejemplo M68000: MOVE.W 5(A0),D1
  • 6.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -6- 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 - Ejemplo M68000: MOVE.L 24(PC),D0 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)
  • 7.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -7- 5. 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 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. 6. 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 Mdir CD (dirección indirecta) - Esquema de funcionamiento
  • 8.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -8- 7. 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 - 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 Mdir CR CD (dirección indirecta) - Preindexado: El contenido del registro índice se suma al de la dirección indirecta en el primer paso de la indirección.
  • 9.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -9- - 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 Mdir CR1 CR2 CD (desplazamiento) - Ejemplo M68000: MOVE.L D0,12(A0,D2)
  • 10.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -10- 8. MODOS DE DIRECCIONAMIENTO DEL MICROPROCESADOR M68000 - Inmediato (sólo operandos fuente): MOVE.B #$48,D3 - Mediante registro • De datos: MOVE.B #$48,D3 • De direcciones: MOVE.W #$4AE8,A5 - Absoluto directo: MOVE.W D2,$4AB12F0 - Relativo a registro de direcciones (indirecto a registro): MOVE.L $345A0A5F,(A6) - Relativo a registro de direcciones con desplazamiento: MOVE.L $345A0A5F,3(A6) - Relativo a registro de direcciones con desplazamiento e índice: MOVE.L $345A0A5F,4(A1,A2) MOVE.L $345A0A5F,4(A4,D7) - Relativo a registro de direcciones con predecremento: MOVE.W D0,-(A7) - Relativo a registro de direcciones con posincremento: MOVE.W D0,(A7)+ - Relativo a contador de programa con desplazamiento (sólo operando fuente): MOVE.L 4(PC),$345A0A5F - Relativo a contador de programa con desplazamiento e índice (sólo operando fuente): MOVE.L 4(PC,A2),$345A0A5F MOVE.L 4(PC,D7),$345A0A5F
  • 11.
    Estructura y Tecnologíade Computadores I Modos de direccionamiento -11- 9. DIRECCIONAMIENTO PAGINADO Y DIRECCIONAMIENTO SEGMENTADO Direccionamiento paginado - La memoria se encuentra dividida en páginas (bloques de igual longitud). - Las direcciones se componen de dos partes: • Indicador de página (IP): en un registro específico o de propósito general de la máquina. • Dirección de palabra (DP): en el campo CD de la instrucción. - Concatenando IP y DP se obtiene la dirección completa. - Esquema de funcionamiento Direccionamiento segmentado - La memoria se divide en porciones de tamaño variable llamadas segmentos. - Tabla de segmentos: contiene la dirección del comienzo y del final de cada segmento en memoria. - Problemas: fraccionamiento de memoria. - Ventajas: se pueden definir segmentos de tamaño arbitrario.