LA MEMORIA DEL PC Límite según procesador 16 Mb, 4Gb F000 : 0 E000 : 0 D000 : 0 Segmentos (64 Kbytes) C000 : 0 B000 : 0 Memoria extendida Límite modo real: 1Mbyte ROM-BIOS Otros usos (vacío) Extensiones BIOS Memoria de pantalla A000 : 0 9000 : 0 8000 : 0 7000 : 0 6000 : 0 5000 : 0 4000 : 0 640 Kbytes Memoria MS-DOS 3000 : 0 2000 : 0 1000 : 0 0000 : 0 Usado por el sistema Descripción del segmento 0000 2000 : 0 Dirección 1000 : 0 Punto de carga de nuevos programas 1000 : 0 Programas residentes (tamaño variable) MS-DOS (tamaño variable) 0000 : 0 Variables BIOS desde 400h a 4FFh Vectores de interrupción desde 0 a 3FFh VECTORES DE INTERRUPCIÓN Existen 256 interrupciones posibles. Vectores contenidos en página 0 de memoria OFFSET 00 04 08 0C Segmento 0000 40 12 11 BB 15 A5 56 A6 16 23 11 12 F0 E9 A9 FF Vector INT 0: F016 : 1540 Vector INT 1: E923 : A512 Vector INT 2: A911 : 5611 Vector INT 3: FF12 : A6BB ARRANQUE O RESET En el 8086 El registro CS se carga con F000 El registro IP se carga con FFF0 CS:IP -> FFFF0 Es una dirección en la zona de ROM-BIOS En el 286 Dirección de arranque: FFFFF0 En el 386 Dirección de arrranque: FFFFFFF0 CS de la EPROM CPU Lógica de selección Señal activa si dir>dir. arranque ROM del sistema direcciones ROM ROMCS# CS# MRDC# OE# datos Contiene: • Power-on self-test (POST) • Rutinas BIOS para los dispositivos básicos • Rutinas de servicio de las interrupciones • Programa de arranque • Intérprete BASIC? Test: • Checksum de toda la ROM debe ser 0 • Ultimo byte usado como ajuste ROM del sistema “Shadow-RAM” • ROM volcada directamente en RAM 1. RAM y ROM en diferentes zonas de la memoria • Se necesita la paginación 2. RAM y ROM en el mismo espacio físico de memoria R/W# direcciones RAM y ROM datos I/O R/W# Mem 0 0 1 1 0 1 0 1 RAM ROM RAM I/O 3. RAM y ROM conectadas • Se copia primero la ROM en RAM • Se activa el bit I/O y la ROM “desaparece” • Accesos a ROM redireccionados ROM del sistema ROM de tarjetas F0000 • Tarjetas de red E0000 • Adquisición de datos D0000 C0000 • Tarjetas de vídeo Formato: C0000 55 AA long inic check sum C8000 55 AA long inic check sum D0000 55 AA long inic check sum ROM BIOS Basic INPUT-OUTPUT System Contiene rutinas básicas para gestionar los periféricos Después de inicializar los periféricos, busca un Sistema Operativo válido en diskette, disco duro,... y lo carga. En el caso del MS-DOS se cargan dos ficheros: IO.SYS Extensiones a las funciones de la ROM-BIOS. Se llama BIOS cargable. MSDOS.SYS Funciones de más alto nivel: abrir o cerrar ficheros, crear directorios, etc. A continuación se ejecuta COMMAND.COM LLAMADA A TRAVÉS DE INT n Programa ... ... INT n ... ... ... Vector de interrupción CD F0 Rutina de servicio a INT n ... IRET 07 14 Ejemplo: MANEJO DE LA PANTALLA ROM-BIOS INT 10h Funciones básicas de manejo de pantalla: posicionar cursor, scroll, cambio de modo (texto, gráfico). BIOS CARGABLE INT 10h Extensiones para gestión de EGA y VGA. Cargar registros de paleta. Activación de los modos gráficos de alta resolución. MS-DOS INT 21h Impresión de una cadena ASCII. Lectura por pantalla de cadenas. Las diferentes funciones contenidas en cada servicio INT, se seleccionan cargando en AH el número de la función. Ejemplo: ACCESO A DISCO ROM-BIOS INT 13h Funciones básicas de acceso al disco: leer, escribir, formatear un sector. BIOS CARGABLE INT 13h Funciones avanzadas de acceso al disco: control de caché de escritura MS-DOS INT 21h Crear, borrar, cambiar directorios Gestión de archivos de alto nivel INT 25h Lectura de sectores absolutos en el disco FUNCIONES BIOS: ACCESO A DISCO pista Cabezas lectoras disco sectores INT 13h : acceso a disco de bajo nivel función 2 : lectura de sectores en el disco AH = 02h AL = número de sectores para leer CH = número de pista CL = número de sector DH = número de cabeza lectora DL = id. del disco ES:BX = buffer de memoria para volcar los datos Devuelve: AH = status, AL = número de sectores leídos Si hay error de lectura se activa el bit de acarreo (CF) FUNCIONES DOS: ACCESO A DISCO INT 21h : Servicios generales del DOS función 39h : Crear subdirectorio AH = 39h DS:DX = puntero a una zona de memoria donde se encuentra la especificación del fichero a crear terminado por 0. Por ejemplo: C:\USUARIOS\DATOS Devuelve: Si ha habido error se activa el bit de acarreo (CF) y en ese caso AH contiene el número del error ocurrido. Interacción con los periféricos Espera activa CPU datos IORD IOWR Periférico dir bucle --------------IN, OUT --------------fin bucle Interrupciones CPU INT datos IORD IOWR Periférico dir ---------------------INT --------------- RSI --------------IN, OUT --------------IRET Acceso directo a memoria datos dir CPU DRQ MEMRD MEMWR RAM datos IORD IOWR Periférico dir DACK Completamente transparente al procesador