Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modos Direccionamiento
Modos Direccionamiento
-1-
MODOS DE DIRECCIONAMIENTO
1. Introduccin 2. Direccionamiento inmediato 3. Direccionamiento directo 4. Direccionamiento relativo a registro 5. Direccionamiento indexado 6. Direccionamiento indirecto 7. Combinaciones de modos bsicos de direccionamiento 8. Modos de direccionamiento del microprocesador M68000 9. Direccionamiento paginado y direccionamiento segmentado 1. INTRODUCCIN - Modo de direccionamiento: mecanismo que permite conocer la ubicacin de un dato o instruccin. - Objeto: dato o instruccin 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 reubicacin del cdigo. Facilitar el manejo de las estructuras de datos. Modos de direccionamiento en las instrucciones - Los operandos y resultado de una instruccin son accedidos a travs de modos de direccionamiento. - Cada campo de operando o resultado en una instruccin contiene informacin acerca del modo de direccionamiento empleado para acceder a l. Cdigo de operacin (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 direccin o un desplazamiento (suele ocupar bastante espacio).
-2-
2. DIRECCIONAMIENTO INMEDIATO - La instruccin contiene al propio objeto. - Se emplea cuando la instruccin contiene un valor constante. - El tamao del operando viene determinado por el espacio reservado para l en el formato de instruccin. - Subcampos del campo de operando Mdir - Esquema de funcionamiento CD (operando inmediato)
- Ejemplo M68000:
MOVE.B #5,D0
-3-
3. DIRECCIONAMIENTO DIRECTO Direccionamiento mediante registro - El operando se encuentra contenido en un registro. - Subcampos del campo de operando Mdir - Esquema de funcionamiento CR
- Ejemplos M68000:
-4-
Direccionamiento directo absoluto - La instruccin contiene la direccin de memoria exacta donde se encuentra el operando. - El operando se encuentra en memoria. - Subcampos del campo de operando Mdir CD (direccin) El rango de CD debe ser capaz de direccionar toda la memoria. Si no es capaz: direccionamiento de pgina base. - Esquema de funcionamiento
- Ejemplo M68000:
MOVE.B D0,$A61350
-5-
4. DIRECCIONAMIENTO RELATIVO A REGISTRO - El operando se encuentra en memoria. - La direccin 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 instruccin). - 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 especfico 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-
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 cdigo. - 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 posicin 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-
5. DIRECCIONAMIENTO INDEXADO - Similar al direccionamiento relativo a registro base. El operando se encuentra en memoria. Registro ndice: se modifica a menudo en la ejecucin del programa. - Subcampos del campo de operando Mdir CR CD (desplazamiento)
- El registro ndice puede permitir incrementos o decrementos antes o despus de obtenerse la direccin del objeto: Preincremento Predecremento Posincremento Posdecremento - El incremento o decremento puede depender del tamao del objeto referenciado. - Ejemplos M68000 (slo 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 instruccin contiene una direccin que se emplea para leer en memoria una direccin intermedia que ser la verdadera direccin del objeto buscado. - Subcampos del campo de operando Mdir CD (direccin indirecta) - Esquema de funcionamiento
-8-
7. COMBINACIONES DE MODOS BSICOS DE DIRECCIONAMIENTO Direccionamiento indirecto a registro - Es similar al direccionamiento indirecto, pero la direccin intermedia est contenida en un registro, no en una posicin de memoria. - La instruccin 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) Combinacin de modos indirecto e indexado - Subcampos del campo de operando Mdir CR CD (direccin indirecta)
- Preindexado: El contenido del registro ndice se suma al de la direccin indirecta en el primer paso de la indireccin.
-9-
- Posindexado: el contenido del registro ndice se suma a la direccin intermedia en el segundo paso de la indireccin.
- Puede haber preincremento o predecremento (total: 8 posibilidades). Direccionamiento relativo a registro con ndice y desplazamiento - La direccin 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-
8. MODOS DE DIRECCIONAMIENTO DEL MICROPROCESADOR M68000 - Inmediato (slo operandos fuente): MOVE.B #$48,D3 - Mediante registro De datos: De direcciones: - Absoluto directo: MOVE.B #$48,D3 MOVE.W #$4AE8,A5
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 (slo operando fuente): MOVE.L 4(PC),$345A0A5F - Relativo a contador de programa con desplazamiento e ndice (slo operando fuente): MOVE.L 4(PC,A2),$345A0A5F MOVE.L 4(PC,D7),$345A0A5F
-11-
9. DIRECCIONAMIENTO PAGINADO Y DIRECCIONAMIENTO SEGMENTADO Direccionamiento paginado - La memoria se encuentra dividida en pginas (bloques de igual longitud). - Las direcciones se componen de dos partes: Indicador de pgina (IP): en un registro especfico o de propsito general de la mquina. Direccin de palabra (DP): en el campo CD de la instruccin. - Concatenando IP y DP se obtiene la direccin completa. - Esquema de funcionamiento
Direccionamiento segmentado - La memoria se divide en porciones de tamao variable llamadas segmentos. - Tabla de segmentos: contiene la direccin del comienzo y del final de cada segmento en memoria. - Problemas: fraccionamiento de memoria. - Ventajas: se pueden definir segmentos de tamao arbitrario.