Está en la página 1de 15

Tema 4: Las interrupciones y la ROM-BIOS

S Interrupciones S Tarjetas de vdeo y memoria asociada S El formato de los caracteres S Pantalla en modo alfanumrico S La ROM-BIOS S Modos de vdeo y su control S Interrupciones de la pantalla con la ROM-BIOS: Servicios de interrupcin 10h S El teclado S Interrupciones del teclado con la ROM-BIOS: Servicios de interrupcin 16h S Servicios de interrupcin del DOS

Estructura de Computadores

Bibliografa bsica
S 8088-8086/8087 programacin ensamblador en entorno MS-DOS Miguel Angel Rosell. Ed. Anaya Multimedia S Microprocesadores: el 8088 / 86 Fernando Remiro Domnguez Agustn Martn Garca Ed. Akal-Bibiloteca tecnolgica S Lenguajes ensambladores R. Martnez Toms. Ed. Paraninfo S Lenguaje ensamblador de los 80x86 Jon Beltrn de Heredia Editorial Anaya-Multimedia. 1996

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Interrupciones (I)
S Son seales que se le envan a la CPU para que termine la ejecucin de la instruccin en curso y atienda una peticin determinada S Pueden ser de dos tipos: S Interrupciones hardware: son generadas por los circuitos asociados al microprocesador en respuesta a algn evento como pulsar una tecla del teclado. A su vez se dividen en: S Interruociones enmascarables. Pueden ser inhibidas desde programa S Interrupciones no enmascarables. Corresponden a situaciones de emergencia del computador: error de paridad, fallo de potencia y no pueden inhibirse S Interrupciones software: generadas por un programa para llamar a ciertas subrutinas almacenadas en memoria ROM o RAM. Es posible cambiarlas y crear otras nuevas

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Interrupciones (II) Interrupciones software (I)


S Los pasos para llamar a una interrupcin son: S Identificar qu interrupcin hace lo que deseamos S Preparar los datos que requiera la interrupcin S Indicar cul es el nmero de la funcin que deseamos S Llamar a la interrupcin S Las interrupciones implican una ruptura en la secuencia de nuestro programa. Se salta al cdigo que da ese servicio y cuando ha terminado, se vuelve a nuestro programa S Las interrupciones salvaguardan los flags y los registros que emplean

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Interrupciones (III) Interrupciones software (II)

Quiero sellos, por favor. Cuantos quiere?

Quiero sellos, por favor. Perdone, creo que se ha confundido

EDIFICIO DE CORREOS MESA 5: SELLOS

EDIFICIO DEL INEM MESA 5: CONTRATACIN

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Instrucciones de interrupcin
S Nombre: INT S Formato: INT tipo_interrupcin S Descripcin: INT activa el procedimiento de interrupcin especificado por el operando. La direccin del vector de interrupcin se calcula multiplicando por 4 el operando, que es un valor entre 0 y 255 El vector de interrupcin se compone de dos palabras: la primera palabra es el desplazamiento y la segunda el segmento S Ejemplos: INT 21h ; Interrupcin 21h S Nombre: IRET S Formato: IRET S Descripcin: Devuelve el control a la direccin de retorno salvada en la pila y restaura los flags. Se emplea para finalizar un procedimiento de interrupcin S Ejemplos: IRET ; retorno de interrupcin

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Tarjetas de vdeo y memoria asociada (I)


S Las tarjetas de vdeo conectan el ordenador con el monitor S Las tarjetas de vdeo constan de: S Un Buffer de vdeo o memoria RAM para representar la informacin en pantalla S Puertos programables S Generador de caracteres ROM S Sistemas de vdeo: S Monocromo. (A000h:0000h a B000:FFFFh) 4K en el segmento B000h S CGA (A000h:0000h a B000:FFFFh) 16K en el segmento B800h S EGA (A000h:0000h a B000:FFFFh) en segmento variable segn sea color o no S MCGA (A000h:0000h a B000:FFFFh) en segmento variable segn sea color o no S VGA (A000h:0000h a B000:FFFFh) en segmento variable segn sea color o no S SVGA (A000h:0000h a B000:FFFFh) en segmento variable segn sea color o no S La memoria de las tarjetas se divide en pginas

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Tarjetas de vdeo y memoria asociada (II)


S Las tarjetas de vdeo conectan el ordenador con el monitor

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

El formato de los caracteres


S Todos los caracteres que aparecen en pantalla estn definidos sobre una matriz de puntos. Dicha matriz de puntos vara de uno adaptadores grficos a otros

Adaptador Monocromo CGA VGA

Definicin del carcter 7x9 7x7 9 x 16

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Pantalla en modo alfanumrico (I)


S En el modo alfanumrico, la unidad de representacin es el carcter. cada carcter representado en la pantalla corresponde a dos bytes contiguos de la memoria de pantalla

S El byte de carcter se corresponde con el cdigo ASCII de dicho carcter S El byte de atributo define la forma de presentacin del carcter

1 0

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Pantalla en modo alfanumrico (II)

Bit 7 6 5 4 3 2 1 0

Descripcin Parpadeo (P) del carcter Componente rojo (R) del fondo Componente verde (V) del fondo Componente azul (A) del fondo Intensidad (I) del carcter Componente rojo (R) del carcter Componente verde (V) del carcter Componente azul (A) del carcter

1 1

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

La ROM-BIOS (I)
S Read Only Memory-Basic Input/Output System. Memoria grabada en fbrica que contiene los programas de inicializacin, arranque y servicios bsicos de entrada/salida. Es el primer interfaz entre el hardware y el programador. Est dividida en tres partes funcionales: S Las rutinas de arranque. Primeras instrucciones que se ejecutan cuando encendemos el ordenador S POST (Power On Self Test). Comprueba el estado de funcionamiento del ordenador. S Inicializacin, que crea los vectores de interrupcin, comprueba la configuracin presente, inicializa los registros de los interfaces programables, carga parmetros, etc. S Es posible ampliar la ROM-BIOS, de forma que la ROM-BIOS estndar pueda reconocer e integrar utilidades. Para ello hay que situar la ampliacin en el rea de memoria reservada, incluyendo una marca especial (55AA) en los dos primeros octetos S Rutina boot, que intenta arrancar el sistema operativo instalado S Manejo de las interrupciones del hardware. Teclado, disco, reloj, etc S Servicios. Estn para realizar los trabajos requeridos por nuestros programas y por el DOS. Llamadas mediante "int xxh", y pase de parmetros en registros. Pueden devolver resultados

1 2

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

La ROM-BIOS (II)
S Servicios de la ROM-BIOS: S 10h Control del vdeo S 11h Buscar configuracin del equipo S 12h Buscar tamao de memoria S 13h Control del disco S 14h Control del puerto serie S 15h Extensiones de E/S S 16h Teclado S 17h Interfaz Paralelo S 18h ROM BASIC S 19h Reinicializacin del sistema (reboot) S 1Ah Reloj y alarmas

1 3

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Modos de vdeo y su control


S Originariamente existan 8 modos de vdeo (7 para la CGA y uno para el monocromo MDA) S Las tarjetas EGA, MCGA, VGA y SVGA introdujeron nuevos modos S Los modos de vdeo estn relacionados tanto en su resolucin como en la organizacin del buffer de vdeo con los modos originales de la CGA y de la MDA S Los diferentes modos de vdeo estn relacionados con la resolucin en modo texto o en modo grfico S La forma ms eficiente de manejar los modos de vdeo es el lenguaje ensamblador para llamar a las rutinas de la ROM BIOS S Tambin se pueden cambiar los modos de vdeo por medio del comando MODE del MS-DOS o empleando sus servicios de interrupcin

Nmero 10H 21H

Tipo

Descripcin

BIOS Funciones varias, segn el valor de AH DOS Funciones varias, segn el valor de AH

1 4

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Interrupciones de la pantalla con la ROM-BIOS Servicios de interrupcin 10h (I)


AH 00h Establece el modo de la pantalla. AL = 0 40 x 25 blanco y negro alfanumrico. AL = 1 40 x 25 color alfanumrico. AL = 2 80 x 25 blanco y negro alfanumrico. AL = 3 80 x 25 blanco y negro alfanumrico. 01h Establecer las lneas del cursor. CH (bits 0-4) Lnea inicial. CH (bits 5-7) deben ser 0. 02h Posicin del cursor. DH = Fila (0-24) DL = Columna (0-79). 03h Leer posicin del cursor. BH = nmero de pgina ( 0 en modo grfico) Devuelve: DH (fila) DL (columna) CH (bits 0-4) lnea inicial CH(bits 5-7) 0 CL (bits 0-4) lnea final y CL (bits 5-7) 0 CL (bits 0-4) Lnea final. CL (bits 5-7) deben ser 0. AL = 4 320 x 200 color grfica. AL = 5 320 x 200 blanco y negro grfica AL = 6 640 x 200 blanco y negro grfica AL = * otros modos en las hojas adjuntas. Funcin

1 5

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Interrupciones de la pantalla con la ROM-BIOS Servicios de interrupcin 10h (II)


AH 06h Desplazamiento (scroll) hacia arriba. AL es el nmero de lneas. Si AL=0 se borra la ventana. CH fila esquina superior izquierda. BH relleno CL columna esquina superior izquierda. 07h Desplazamiento (scroll) hacia abajo. AL es el nmero de lneas. Si AL=0 se borra la ventana. CH fila esquina superior izquierda. BH relleno. CL columna esquina superior izquierda. 08h Leer carcter y atributo de la posicin actual BH es el nmero de pgina. Devuelve: AL el carcter ledo
rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Funcin

DH fila esquina inferior derecha. DL columna esquina inferior dcha.

DH fila esquina inferior derecha. DL columna esquina inferior dcha.

AH atributo del carcter ledo.


Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

1 6

Interrupciones de la pantalla con la ROM-BIOS Servicios de interrupcin 10h (III)


AH BH es el nmero de pgina. BL es el atributo del carcter o el color. AL es el carcter a escribir BH es el nmero de la pgina. 0Bh Establece la paleta de colores en el modo grfico 320x200 BH nmero del color (0-127) BL valor del color. 0Ch Escribir punto en modo grfico. DX es el nmero de fila CX es el nmero de la columna AL es el valor del color. Funcin CX es el nmero de caracteres a escribir. AL es el carcter a escribir.

09h Escribir el carcter y el atributo en la posicin actual del cursor.

0Ah Escribir el carcter slo en la posicin actual del cursor. AL es el carcter a escribir.

1 7

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Interrupciones de la pantalla con la ROM-BIOS Servicios de interrupcin 10h (IV)


AH 0Dh Leer punto en modo grfico. DX es el nmero de fila. Devuelve AL es el punto ledo. 0Eh Escribir el carcter en la pantalla y avanzar el cursor. AL es el carcter a escribir. BL es el color del carcter o su atributo. BH es el nmero de la pgina. 0Fh Leer el estado actual de la pantalla. Devuelve: AL el modo. AH nmero de columnas de la pantalla. BH nmero de pgina activa.
rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Funcin CX es el nmero de columna.

1 8

El teclado (I)
S El teclado del PC consta de 102 teclas: S En la parte superior las teclas de funcin S En el centro el teclado estndar de una mquina de escribir S A la derecha un teclado numrico S El teclado se comunica con la BIOS a travs de puertos e interrupciones, detecta las teclas pulsadas e informa a la BIOS S La interrupcin que se produce al pulsar una tecla es la 9 y lee el puerto del teclado (60h) generando dos bytes: S El identificador de la tecla S El cdigo ASCII correspondiente a la tecla. Si es cero indica una tecla especial

1 9

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

El teclado (II)
S Existen dos bytes que indican el estado del teclado KB_FLAG y KB_FLAG_1 S En la tabla siguiente estado (1 activo 0 inactivo) pulsado (1-->si; 0-->no)

Bit 7 6 5 4 3 2 1 0

KB_FLAG Ins (estado) Caps-Lock (estado) Num-Lock (estado) Scroll-Lock (estado) Alt (pulsado) Ctrl (pulsado) Mayscula izqda. (pulsado) Mayscula dcha. (pulsado)

KB_FLAG_1 Ins (pulsado) Caps-Lock (pulsado) Num-Lock (pulsado) Scroll-Lock (pulsado) Ctrl + Num-Lock (pulsado) No se usa No se usa No se usa

2 0

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

10

Interrupciones asociadas al teclado


Tipo BIOS BIOS BIOS DOS DOS Descripcin Accin sobre el teclado (rutina del sistema) Funciones varias segn el valor de AH Rutina para Ctrl-Break si el control lo tiene la BIOS Funciones varias segn el valor de AH Rutina para Ctrl-Break si el control lo tiene el DOS

2 1

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Interrupciones del teclado con la ROM-BIOS Servicios de interrupcin 16h


AH Funcin

00h Lee del buffer de memoria de teclado los cdigos asociados a una tecla o combinacin de teclas. Si el buffer est vaco espera a que se pulse alguna tecla Devuelve en AL el cdigo ASCII del carcter ledo y en AH el identificador de la tecla. 01h Devuelve en estado del buffer de teclado. Devuelve Si el buffer est vaco pone el flag de Cero a 1 Si el buffer no est vaco el flag de cero es 0 y pone en AL el cdigo ASCII del carcter ledo y en AH el identificador de la tecla. 02h Devuelve el byte de estado del teclado KB_FLAG Devuelve en AL el KB_FLAG

2 2

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

11

Servicios de interrupcin del MS-DOS (I)

2 3

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Servicios de interrupcin del MS-DOS (II) Lectura de un carcter por teclado


En el segmento de cdigo

Funcin 1h S El nmero de la funcin debe ir en AH S Devuelve el cdigo ASCII de la tecla pulsada en AL S Muestra el carcter que se ha pulsado en pantalla

Mov ah, 01h Int 21h

Funcin 8h S El nmero de la funcin debe ir en AH S Devuelve el cdigo ASCII de la tecla pulsada en AL S No muestra el carcter que se ha pulsado en pantalla. til para introducir palabras clave a un programa

En el segmento de cdigo

Mov ah, 08h Int 21h

2 4

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

12

Servicios de interrupcin del MS-DOS (II) Escritura de un carcter por pantalla


Funcin 2h S El nmero de la funcin debe ir en AH S Se debe indicar el cdigo ASCII del carcter a imprimir en DL S Existen dos formas de pasar el cdigo ASCII a DL S Devuelve el cdigo ASCII del carcter impreso en AL

En el segmento de cdigo

Mov ah, 02h Mov dl, A Int 21h

Mov ah, 02h Mov dl, 41h Int 21h

2 5

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Servicios de interrupcin del MS-DOS (III) Lectura de una cadena de caracteres (I)
Funcin 0Ah S El nmero de funcin se debe proporcionar en AH S En DS:DX se debe poner la direccin y el desplazamiento en el que se encuentra la estructura de la cadena S En el segmento de datos se define la estructura siguiente: S Mximo nmero de caracteres a leer ms uno S Un byte en blanco que se rellenar con el nmero de caracteres ledos S Tantos bytes como caracteres se deseen leer. Normalmente se emplea DUP para definirlo S Un byte para almacenar el ENTER En el segmento de cdigo En el segmento de datos

Mov ah, 0Ah Lea dx, cadena Int 21h

Cadena db 9,0,0,0,0,0,0,0,0,0,0

2 6

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

13

Servicios de interrupcin del MS-DOS (III) Lectura de una cadena de caracteres (II)
Cadena Mximo nmero de caracteres ms uno Nmero de caracteres ledos sin el enter Caracteres de la cadena

Espacio reservado para el enter

2 7

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

Servicios de interrupcin del MS-DOS (III) Escritura de una cadena de caracteres


Funcin 09h S El nmero de funcin se debe proporcionar en AH S En DS:DX se debe poner la direccin y el desplazamiento en el que se encuentra la cadena que se desea imprimir S La cadena debe terminar en $ obligatoriamente y estar definida en el segmento de datos

En el segmento de datos

En el segmento de cdigo

Cadena dbHola mundo$

Mov ah, 09h Lea dx, cadena Int 21h

2 8

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

14

Servicios de interrupcin del MS-DOS (III) Solicitud de terminacin de programa


Funcin 4Ch S El nmero de funcin debe ir en AH S El ERRORLEVEL que se desee devolver ir en AL S El ERRORLEVEL devuelto podr ser tratado desde el MS-DOS con la orden: IF ERRORLEVEL n accin

En el segmento de cdigo

Mov ah, 4Ch Mov al, 1 Int 21h

2 9

rea de Arquitectura y Tecnologa de Computadores Departamento de Automtica Universidad de Alcal

Tema 4: Las interrupciones y la ROM-BIOS Estructura de Computadores

15