Modos de Direccionamiento

11

Click here to load reader

description

Modos de Direccionamiento utilizados por el CPU.

Transcript of Modos de Direccionamiento

Page 1: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos 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 oinstrucció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 dedireccionamiento.

- Cada campo de operando o resultado en una instrucción contiene información acercadel 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).

CO MD OP1 OP2 RES

Mdir CR CD

Page 2: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos 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 elformato de instrucción.

- Subcampos del campo de operando

- Esquema de funcionamiento

- Ejemplo M68000: MOVE.B #5,D0

Mdir CD (operando inmediato)

Page 3: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos de direccionamiento -3-

3. DIRECCIONAMIENTO DIRECTO

Direccionamiento mediante registro

- El operando se encuentra contenido en un registro.

- Subcampos del campo de operando

- Esquema de funcionamiento

- Ejemplos M68000: MOVE.B #5,D0MOVE.W #$23A0,A3

Mdir CR

Page 4: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos de direccionamiento -4-

Direccionamiento directo absoluto

- La instrucción contiene la dirección de memoria exacta donde se encuentra eloperando.

- 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

- Ejemplo M68000: MOVE.B D0,$A61350

Mdir CD (dirección)

Page 5: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos 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 uncierto registro (que funciona como un puntero) y un desplazamiento (contenido en lainstrucció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 unocualquiera de los del banco.

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

- Esquema de funcionamiento

- Ejemplo M68000: MOVE.W 5(A0),D1

Mdir CR CD (desplazamiento)

Page 6: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos 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 obucles) 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 lapila

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

Page 7: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos 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

- El registro índice puede permitir incrementos o decrementos antes o después deobtenerse 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 1MOVE.W D0,-(A2) decrementa A2 en 2MOVE.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 unadirección intermedia que será la verdadera dirección del objeto buscado.

- Subcampos del campo de operando

- Esquema de funcionamiento

Mdir CR CD (desplazamiento)

Mdir CD (dirección indirecta)

Page 8: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos 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 enun 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

- Preindexado: El contenido del registro índice se suma al de la dirección indirecta en elprimer paso de la indirección.

Mdir CR

Mdir CR CD (dirección indirecta)

Page 9: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos de direccionamiento -9-

- Posindexado: el contenido del registro índice se suma a la dirección intermedia en elsegundo 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)

Mdir CR1 CR2 CD (desplazamiento)

Page 10: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos 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),$345A0A5FMOVE.L 4(PC,D7),$345A0A5F

Page 11: Modos de Direccionamiento

Estructura y Tecnología de Computadores IModos de direccionamiento -11-

9. DIRECCIONAMIENTO PAGINADO Y DIRECCIONAMIENTOSEGMENTADO

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

- Problemas: fraccionamiento de memoria.

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