Document

Anuncio
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
Descargar