You are on page 1of 4

LA ESTRUCTURA DE LA MEMORIA.

En primer lugar, el PC salió al mercado con una memoria de 16 KB, que podía extenderse en la placa madre hasta 64 KB. Además, IBM proporcionaba tarjetas de aplicación que recogían cada una 64 KB y que tenían que colocarse en uno de los 5 puestos de conexión de las tarjetas de ampliación. Solo se podían instalar 3 tarjetas como máximo, para dotar al PC con la inmensa cantidad de memoria de 256 KB en aquella época. De todas maneras las personas que estaban haciendo el desarrollo del PC sabían que aquello no era el final del desarrollo y dispusieron una distribución de la memoria, que permitió una extensión de la memoria RAM hasta una marca de 640 KB. Se imaginaban estar preparados para el futuro, pero este les sobrepaso muy rápidamente tal como todos los usuarios del DOS ya conocen. Aparte de la RAM incluyeron también en la planificación un espacio en la CPU- 8088, que tenia un espacio de direcciones de 1 MB, para el área RAM de las tarjetas de vídeo (el llamado RAM vídeo "VRAM"), para la ROM-BIOS y algunas ampliaciones ROM. Al procesador le es indiferente encontrarse detrás de una posición de memoria RAM o ROM, con la única diferencia que las áreas de memoria en ROM no pueden describirse. El procesador tampoco tiene ningún inconveniente en dirigirse a puntos de la memoria que físicamente no existen. Pues el hecho de que el procesador pueda administrar hasta 1 MB de memoria, no significa ni mucho menos que detrás de cada dirección de memoria se oculta realmente un elemento RAM o ROM. Los 10 primeros segmentos de memoria están reservados para la memoria principal RAM, quedando limitado su tamaño máximo a 640 KB. El segmento 0 tiene un papel muy importante ya que en él se incluyen datos y rutinas importantes para el sistema operativo. A la memoria RAM le sigue el segmento de memoria A, que se instala con una tarjeta gráfica EGA y VGA. Sirve de memoria de la estructura de la pantalla en los diferentes modos gráficos de estas tarjetas. El segmento de memoria B está asignado a la tarjeta de vídeo monocroma MDA y Hercules así como también a la tarjeta gráfica de color CGA. Ambas comparten este segmento como memoria de estructura de la pantalla, utilizando la tarjeta monocroma los 32 KB inferiores y la tarjeta de color los 32 KB superiores de este segmento. Cada tarjeta instala solo aquella memoria que es necesaria para la memoria de la pantalla. En las tarjetas monocromas son solo 4 KB y en las tarjetas CGA tampoco son más de 16 KB . Los segmentos de memoria detrás Vídeo RAM no se cargaran con RAM, si no con ROM, siendo el segmento C el inicio. En algunos ordenadores en este segmento se depositan algunas rutinas BIS que no forman parte del núcleo original de la BIOS. En los XT estas rutinas son por ejemplo las que dan soporte al disco fijo que se ha introducido. Los segmentos D y E estaban previstos originariamente para cartuchos ROM, como los que se utilizaban para los ordenadores domésticos y juegos de TV para la aportación de software en el sistema. Nunca se han utilizado realmente, de manera que esta área se mantiene prácticamente siempre libre y hoy en día se utiliza como RAM adicional o bien para la inserción de memoria EMS. Finalmente el bloque F contiene las rutinas de las BIOS en sí, el cargador original del sistema así como también el ROMBASIC que solo se conserva en los ordenadores viejos.

TIPOS DE MEMORIA. Comenzaremos por nombrar y describir los diferentes tipos de memorias disponibles según la forma en que se guardan y acceden los datos. RAM: (Random acces memory) Esta memoria llamada Memoria de Acceso Aleatorio, se entiende mejor si interpretamos su nombre de la siguiente forma "cualquier acceso a memoria toma el mismo tiempo". SAM: Esta memoria de acceso secuencial se puede entender como el antónimo de la memoria RAM ya que en el caso de la SAM el tiempo de acceso a los datos depende de donde están ubicados. Un ejemplo de este tipo de memoria lo constituyen las cintas de música (Cassette). ROM: Es de solo lectura viene con sus datos grabados desde fábrica. PROM: Esta es una ROM programable, también llamada OTP (One Timme Programming). Sin embargo esta programación sólo se puede hacer una sola vez. EPROM: La principal característica de esta memoria es que puede ser programable como la PROM pero con la ventaja de ser borrable por medio de un proceso fotoquimico (Luz Ultravioleta).

a la forma en que se expresan y guardan las direcciones. pero no resolvía el problema de grandes cantidades de código. que este asunto. permitía manejar grandes cantidades de datos (ahora no nos parecen tan grandes). ha sufrido mutaciones a lo largo del tiempo. El modo real está caracterizado por 20 bits de espacio de direcciones segmentado (significando que solamente se puede direccionar 1 MB de memoria). Advirtiendo desde ahora. La especificación EMS de Lotus/Intel/Microsoft. como muchos otros.  Modo protegido y memoria extendida. En este epígrafe nos referiremos exclusivamente a la forma en que son tratadas las direcciones de memoria del PC. Todos los CPUs x86 de las series del 80286 y posteriores empiezan en modo real al encenderse el computador. cuando varios programas deben coexistir en memoria. los CPUs 80186 y anteriores tenían solo un modo operacional. El segundo. El modo real (también llamado modo de dirección real en los manuales de Intel) es un modo de operación del 80286 y posteriores CPUs compatibles de la arquitectura x86.  Modo real.EEPROM : Al igual que la EPROM esta memoria puede ser borrable. Esto presentaba problemas no solo para programas grandes. y que arrastra modos que solo tienen una justificación de tipo histórico. en razón de las características del hardware de los primeros PC’s. sin embargo. El direccionamiento de la memoria puede considerarse desde dos puntos de vista: Físico y lógico. . El primero se refiere a los medios electrónicos utilizados en el ordenador para acceder a las diversas posiciones de memoria. presenta la ventaja adicional de que no tiene que ser expuesta a luz ultravioleta (ahorrando tiempo y mejorando la comodidad). que era equivalente al modo real en chips posteriores. ya que el segmento de código no podía manejarse de esta forma. Esta memoria es borrable por medios eléctricos. sino para cualquier intento de multiprogramación ( 1. DIRECCIONAMIENTO DE LA MEMORIA EN MODO REAL Y EN MODO PROTEGIDO.7). acceso directo del software a las rutinas del BIOS y el hardware periférico. y no tiene conceptos de protección de memoria o multitarea a nivel de hardware.

Más tarde. ASCII American Standard Code for Information Interchange (Código Estadounidense Estándar para el Intercambio de Información) es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y otras lenguas occidentales. es decir el código (las instrucciones) se ubica en un segmento. Las posiciones de memoria en los segmentos se definen por direcciones lógicas. Registros de segmento Los registros de segmento se utilizan para referenciar áreas de memoria. El problema del enfoque anterior consiste en que todos los datos se encuentran mezclados entre si y a la vez distribuidos a lo largo de todo el espacio de direcciones memoria. Todas las instrucciones. Casi todos los sistemas informáticos de hoy en día utilizan el código ASCII o una extensión compatible para representar textos y para el control de dispositivos que manejan texto. Creado aproximadamente en 1963 por el Comité Estadounidense de Estándares (ASA) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. puedes pasar directamente al tema acerca de las banderas. . DS. en 1967. DOBLES PALABRAS. El modelo de memoria lineal presenta todo el espacio de direcciones de la memoria como un espacio contiguo. lo cual hace que su manejo sea engorroso e ineficiente. Cada posición de memoria se referencia mediante una dirección específica llamada "dirección lineal". Cada segmento contiene un tipo específico de información. ES. La plataforma IA-32 permite direccionar la memoria según el modelo de memoria lineal o el modelo de memoria segmentada. El procesador traduce una dirección lógica a una dirección lineal. SS. Nota: Aún cuando la siguiente información es muy útil para aprender acerca de cómo está estructurada la memoria no es imprescindible para comenzar a programar en lenguaje ensamblador. los cuales son conocidos como registros de segmento: Registro de segmento CS DS SS ES FS GS Descripción Segmento de código Segmento de datos Segmento de pila Apuntador de segmento extra Apuntador de segmento extra Apuntador de segmento extra 2. los datos y la pila se encuentran en el mismo espacio de direcciones de memoria. se incluyen las minúsculas y se redefinen algunos códigos de control para formar el código conocido como US-ASCII. El modelo de memoria segmentada resuelve este problema dividendo el espacio de direcciones en segmentos independientes entre si. Una dirección lógica está compuesta por una dirección de segmento y un desplazamiento. Los procesadores de la familia Intel poseen un grupo de registros creados con el fin de soportar el modelo de memoria segmentada.REGISTROS DE SEGMENTOS (CS. FORMATOS DE DATOS: DATOS ASCII Y BCD. los datos en otro y la pila en un tercer segmento. Si quieres. FS Y GS). BYTE Y PALABRA (WORD). TRATAMIENTO DE NUMEROS REALES.

. Direccionamiento Base+Indice. 128). BYTE. una norma ampliamente aceptada. DOBLES PALABRAS. en la medida de lo posible. para caracteres de control. la cual tiene una longitud definida por el hardware de la máquina. aunque utiliza menos de la mitad. Direccionamiento directo. dividido en 4 grupos de 32 caracteres. como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés. 3. De manera que una palabra en una máquina de 16 bits contiene 2 bytes. Direccionamiento relativo Base + Indice. y por lo tanto. y una palabra doble (o una palabra simple de 32 bits) contendría cuatro bytes. La otra unidad modular es la palabra (word). típicamente es un byte o algún múltiplo par de un byte (16. se ha usado una clave que es muy parecida a la de la tarjeta. los datos de la tarjeta. Cuando se trasmite una tarjeta es muy conveniente que la maquina transmisora sea poco costosa. una letra. aparte de constituir un estándar. 32. Por lo tanto se condensa la puesta en clave para producir la forma decimal en clave binaria (Binary-Coded-Decimal). numeral o signo de puntuación). numéricos y signos de puntuación. Una palabra se refiere al número de bits que se manejan como unidad dentro del bus de un sistema de computación en particular o durante el procesamiento interno. como el nuestro. Código BCD En las primeras épocas del procesamiento de datos el medio principal para el almacenamiento de datos era la tarjeta perforadora y se normalizaron varias claves de tarjetas perforadoras. Direccionamiento relativo por Registro.Define 128 códigos posibles. Normalmente el código ASCII se extiende a 8 bits (1 byte) añadiendo un BIT de control. Su principal ventaja. La tarjeta Hollerith. Modos de Direccionamiento de Datos (por Registro y Direccionamiento Inmediato. PALABRA (WORD).  Registro. 64. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits. alfabéticos (no incluye minúsculas). (7 bits de información por código). Las claves llamadas decimales en clave binaria se usan para representar con seis bits. consiste en la ordenación alfabética de los códigos. Una de las dos unidades modulares utilizadas es el byte. que es un carril de ocho bits que puede representar un número del 0 al 255. o a veces con siete. Direccionamiento por Desplazamiento. usa realmente 12 bits para poner en clave un carácter que podría ponerse en clave con seis. Direccionamiento de Arreglos con Direccionamiento relativo Base + Indice. TRATAMIENTO DE NUMEROS REALES. llamado BIT de paridad. o un código (por ejemplo.