Vous êtes sur la page 1sur 3

DIRECCIONAMIENTO DE LA MEMORIA EN MODO REAL Los microprocesadores 80286-80486 funcionan en el modo real o en el modo protegido.

Los 8086, 8088 y 80186 slo funcionan en el modo real. En esta seccin se detalla el funcionamiento del microprocesador en el modo real. El funcionamiento en el modo real permite que el microprocesador slo direccione al primer 1Mbyte de espacio en la memoria, aunque sea un microprocesador 80486. En los sistemas de funcionamiento MSDOS o PCDOS se supone que el microprocesador funciona en el modo real en todo momento. El funcionamiento en el modo real permite que el software de la aplicacin escrito para el 8086 u 8088 que slo contienen 1 M byte de memoria, funcionen os microprocesadores 80286, 80386 y 80486. En todos los casos, cada uno de los microprocesadores empieza a funcionar en modo real en forma implcita (default), siempre que se aplica la corriente o si se restablece el microprocesador.

Segmentos y desplazamientos Una direccin de segmento y una direccin de desplazamiento, generan una direccin en la memoria en el modo real. Todas las direcciones en la memoria en modo real consisten de un segmento y un desplazamiento. El segmento ubicado en uno de los registros de segmento, definen la direccin de cualquier segmento de memoria de 64 KB. La direccin de desplazamiento selecciona una localidad dentro del segmento de memoria de 64 KB. En la figura 1-9 se ilustra cmo el esquema de direccionamiento de segmento ms desplazamiento selecciona una localidad en memoria. En esta ilustracin se muestra un segmento de memoria que empieza en la localidad 1000H y termina en l 1FFFFH, DE 64 KB de longitud. Tambin se muestra la forma en que un desplazamiento de F000H selecciona la localidad 1F000H en el sistema de la memoria. Se ver que la direccin de desplazamiento es la distancia desde el inicio del segmento. El registro de segmento de la figura 1-9, contiene 1000H, con lo que apunta a una direccin inicial de 10000H. En el modo real, a cada registro de segmento se le agrega un 0H en su extremo derecho, para formar una direccin de memoria de 20 bits que le permite colocar el inicio del segmento en casi cualquier localidad dentro del primer Mbyte de memoria. Por ejemplo, si un segmento de registro contiene una 1200H, direcciona a un segmento de memoria de 64KB que empieza en la localidad 12000H. As mismo, si un registro de segmento contiene una 1201H direcciona a un segmento de memoria que comienza en la localidad 12010H. Debido al 0H, que se agrega en forma interna, los segmentos pueden empezar en cualquier mltiplo de 16 bytes en el sistema de memoria. A menudo a este lmite de 16 bytes se le llama un prrafo de memoria.

Debido a que un segmento de memoria en modo real tiene 64 KB de longitud, una vez que se conoce la direccin inicial, para encontrar la direccin final se le agrega una FFFFH a la direccin inicial. Por ejemplo, si un registro de segmento contiene 3000H, la primera direccin en el segmento es 30000H y la ultima direccin es 30000H +FFFFH o 3FFFFH. En la tabla 1-4 se

presentan algunos ejemplos contenidos de registros de segmento y las direcciones inicial y final de los segmentos de memoria, seleccionadas por cada direccin del segmento. La direccin del desplazamiento se suma a la del segmento para ubicar una direccin en el segmento. Por ejemplo, si la direccin de segmento es 1000H y la direccin de desplazamiento es 2000H, el microprocesador direcciona la localidad de memoria 12000H. La direccin de segmento y del desplazamiento, a veces, se escribe 1000:2000 para una direccin de segmento de 1000H y un desplazamiento 2000H.

REGISTROS DE SEGMENTO Y DESPLAZAMIENTO IMPLCITO El microprocesador tiene un grupo de reglas que se aplican siempre que se direcciona a la memoria. Estas reglas, que se aplican en el modo real o en el protegido, definen la combinacin de registros de segmento y de desplazamiento, que se utilizan en ciertos modos de direccionamiento. Por ejemplo, el registro de segmento de cdigo se emplea siempre con el apuntador de instrucciones para direccionar la siguiente instruccin a ejecutar en un programa. Esta combinacin es CS:IP o CS:EIP, segn sean el microprocesador y el modo de funcionamiento. El registro de segmento de cdigo define el principio de un segmento de cdigo a ejecutar por el microprocesador. Por ejemplo, si CS= 1400H IP/EIP=1200H, el microprocesador busca y lee la siguiente instruccin en la localidad 14000H + 1200H o sea 15200H en la memoria. Otro direccionamiento implcito es el de pila. Se hace referencia a los datos de la pila por medio del segmento de pila y por localidad de la memoria a la cual direcciona el apuntador de la pila (SP/ESP) o el apuntador de base. Estas combinaciones se refieren como SS:SP O SS:BP. Por ejemplo, si SS = 2000H Y BP =3000H, el microprocesador a la localidad 23000H en la memoria del segmento de pila direccionada por el registro BP. Se debe tener en cuenta que en el modo real, Slo los 16 bits en la extrema derecha del registro extendido direccionan a una localidad dentro del segmento de memoria. Nunca ponga un numero mayor que FFFFH en un registro de desplazamiento si el microprocesador funciona en modo real. Si en el modo real se direcciona a una memoria mayor que 100000H ocasionar que el microprocesador interrumpa el programa e indique un error. Piense que los segmentos son como ventanas que se pueden mover en cualquier superficie de la memoria para accesar a datos o cdigo. Suponga que un programa de aplicacin requiere 1000H bytes de memoria para su cdigo, 190H bytes de memoria para sus datos y 200H bytes de memoria para su pila. Esta aplicacin no requiere un segmento adicional. Cuando el Dos coloca este programa en la memoria, se carga el TPA en la primera zona disponible encima de los manejadores y otros programas de la TPA. En la figura 1-11 se muestra la forma en que esta aplicacin se almacena en el sistema de memoria. Los segmentos muestran una superposicin o traslape debido a la cantidad de datos que hay en ellos no requiere 64 KB de memoria. La vista lateral de los segmentos muestra con claridad el traslape y la forma en que los segmentos se pueden desplazar a cualquier parte de la memoria. Por fortuna

para todos, el DOS calcula y asigna las direcciones en el segmento. Esto se explica en un capitulo ms adelante en que se dan detalles del funcionamiento del ensamblador, del BIOS y del DOS para un programa en lenguaje ensamblador. EL DIRECCIONAMIENTO DE SEGMENTO Y DESPLAZAMIENTO PERMITE LA RELOCALIZACIN. El sistema de direccionamiento de segmento y desplazamiento parece ser demasiado complicado. Si lo es pero tambin ofrece una ventaja al sistema. El sistema un tanto complicado de direccionamiento de segmento y de desplazamiento permite el cambio de lugar de los programas en el sistema de memoria. Un programa relocalizable es el que se puede poner en cualquier zona de la memoria y ejecutarlo sin cambio. Los datos relocalizables son que se pueden colocar en cualquier zona de la memoria y utilizarlos sin ningn cambio en el programa. El sistema de direccionamiento de segmento y desplazamiento permite relocalizar los programas y los datos sin cambiar nada, absolutamente, en un programa o en los datos. Esto es perfecto para utilizarlo en una computadora para uso general, cuando no todas las maquinas contienen las mismas zonas de memoria. La estructura de la memoria de la computadora personal es diferente entre una maquina y otra, por lo cual requieren software y datos que se puedan relocalizar. Debido a que las localidades de memoria se les direcciona dentro de un segmento con una direccin de desplazamiento, el segmento se puede cambiar sin cambiar ninguna de las direcciones de desplazamiento. Para lograrlo, se mueve todo el programa, como bloque, a una nueva zona y slo se cambia el contenido de los registros de segmento. Si una instruccin est 4 bytes arriba del inicio del segmento, su direccin de desplazamiento es 4. Si se mueve todo el programa a una nueva zona en la memoria, esta direccin de desplazamiento 4 todava apunta a los 4 bytes que estn arriba del inicio del segmento. Lo nico que se necesita cambiar es el contenido del registro de segmento para relocalizar el programa en una nueva zona de la memoria. Esta facilidad de relocalizacin ha hecho que las computadoras personales basadas en microprocesadores de Intel sean muy potentes y muy comunes. Si no se tuviera esta caracterstica, habra que volver a escribir o alterar un programa antes de moverlo. Esto necesitar tiempo adicional o requerira un programa para cada una de las muchas configuraciones diferentes de los sistemas de computadora.

Vous aimerez peut-être aussi