ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

MAQUINA EXTENDIDA


Enviado por   •  5 de Mayo de 2014  •  2.139 Palabras (9 Páginas)  •  541 Visitas

Página 1 de 9

SISTEMA OPERATIVO QUE LE PERMITE AL USUARIO PODER INTERACTUAR CON EL HARDWARE DE UN COMPUTADOR.

MODOS DE DIRECCIONAMIENTO

Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción (lenguaje ensamblador). Cómo se especifican e interpretan las direcciones de memoria según las instrucciones.

Un modo de direccionamiento especifica la forma de calcular la dirección de memoria efectiva de un operando mediante el uso de la información contenida en registros y / o constantes, contenida dentro de una instrucción de la máquina o en otra parte.

La arquitectura x86 utiliza el método de segmentación para direccionar memoria, en lugar del método lineal usado en otras arquitecturas. La segmentación implica descomponer una dirección lineal en dos partes – un “segmento” y un “desplazamiento”. El segmento apunta al inicio de un bloque de 64K direcciones y el desplazamiento indica la diferencia entre el lugar apuntado y el inicio del segmento.

Este modo de direccionamiento se utiliza para aprovechar las características del procesador. El problema estaba en que los registros internos del procesador eran de 16 bits, mientras que el bus de direcciones era de 20. Faltaban por tanto 4 bits para poder aprovechar al máximo las capacidades de direccionamiento del procesador. Para resolver esto, cada dirección de memoria será especificada como un segmento y un desplazamiento dentro de ese segmento. Esta solución divide la memoria en segmentos de 64 K, lo cuál limitó bastante los diseños de los procesadores posteriores de la familia (Intel 80286,Intel 80386, etc.); aunque posteriormente se idearon métodos para resolver este problema, como la memoria extendida (no compatible con el x86/x88). Con esto se consigue que el procesador sea capaz de direccionar 1,048,576 direcciones de 1 byte, o lo que es lo mismo, 1Mbyte.

DIRECCIONAMIENTO DIRECTO

Direccionamiento directo

El operando se especifica en la instrucción mediante un campo de dirección de 8 bits. Sólo la RAM interna de datos (primeros 128 bytes) y la zona de SFR se pueden direccionar de esta forma.

Este modo de direccionamiento permite el acceso de fácil y rápido a las zonas de las memoria anteriormente indicadas.

Ejemplo:

ADD A,3BH ;

esta instrucción suma (ADD) al contenido del acumulador el contenido de la posición de memoria 3BH: A <--- (A) + ([3B]).

En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en la memoria y su dirección es dada directamente por el campo de dirección de la instrucción. En una instrucción de tipo ramificación el campo de dirección especifica la dirección de la rama actual.

Con este tipo de direccionamiento, la dirección efectiva es contenida en la misma instrucción, tal como los valores de datos inmediatos que son contenidos en la instrucción. Un procesador de 16 bits suma la dirección efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la dirección física del operando.

DIRECCIONAMIENTO INDIRECTO

En este modo de direccionamiento,

Para el direccionamiento de áreas de memoria (tanto internas como externas) de tamaño no superior a 256 bytes, se puede hacer uso de los registros R0 y R1 del banco de registros seleccionado. Si el área de memoria posee un tamaño superior, sólo puede utilizarse el registro DPTR.

Este modo de direccionamiento es especialmente útil para acceder a los 128 bytes altos de la memoria de datos interna (8052) y a la memoria de datos externa. Ejemplos:

ADD A,@R0 ; Si (R0) = 3BH, la operación realizada por esta instrucción será la misma del ejemplo anterior: A <--- (A) + ([3B]).

MOVX @DPTR,A ; Si (DPTR) = 4C2BH, esta instrucción carga el contenido del acumulador en la posición 4C2BH de la memoria de datos externa: [4C2B] <---

DIRECCIONAMIENTO POR REGISTRO

Cuando se usa direccionamiento por registro, en el propio código de operación de la instrucción se especifica el registro del banco activo con que se opera mediante un campo de tres bits.

Ejemplo:

MOV Rn,A ; Carga en el registro Rn el contenido del acumulador: Rn <--- (A).

Este direccionamiento ocupa muy poca memoria de programa y permite acceder de manera rápida a los datos más frecuentemente utilizados.

DIRECCIONAMIENTO IMPLÍCITO

Algunas instrucciones operan siempre sobre un mismo registro (acumulador, puntero de datos, etc.) el cual, en consecuencia, es seleccionado de forma implícita por el propio código de operación, no siendo necesario añadir un byte de dirección para referenciarlo. Las instrucciones con este modo de direccionamiento son muy rápidas y compactas, ocupando el mínimo espacio en la memoria de programa.

Ejemplos:

INC A ; Incrementa el contenido del acumulador: A <--- (A) + 1.

INC DPTR ; Incrementa puntero de datos: DPTR <--- (DPTR) + 1.

DIRECCIONAMIENTO INMEDIATO

En este modo de direccionamiento, el operando va incluido en la propia instrucción y se identifica precediéndolo por el símbolo “#”. Dicho operando tiene una longitud de 8 bits, excepto en las instrucciones que afectan al DPTR, en las cuales posee un tamaño de 16 bits. Este modo se usa en los casos en que el operando es una constante.

Ejemplos:

MOV A,#255 ; Carga en el acumulador el número decimal 255.

MOV DPTR,#36CAH ; Carga en el registro DPTR el valor 36CAH.

DIRECCIONAMIENTO INDEXADO

Este direccionamiento sólo es aplicable sobre la memoria de programas y para operaciones de lectura. Se utiliza para la lectura de tablas de valores constantes alojadas en esta zona de la memoria. La posición de memoria a acceder se especifica mediante la dirección de la base de la tabla (almacenada en un registro de 16 bits: DPTR o PC) y un desplazamiento u offset

...

Descargar como (para miembros actualizados)  txt (13.2 Kb)  
Leer 8 páginas más »
Disponible sólo en Clubensayos.com