Académique Documents
Professionnel Documents
Culture Documents
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
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
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
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
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
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
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
Tipo
Descripcin
BIOS Funciones varias, segn el valor de AH DOS Funciones varias, segn el valor de AH
1 4
1 5
Funcin
1 6
0Ah Escribir el carcter slo en la posicin actual del cursor. AL es el carcter a escribir.
1 7
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
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
10
2 1
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
11
2 3
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
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
2 4
12
En el segmento de cdigo
2 5
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
Cadena db 9,0,0,0,0,0,0,0,0,0,0
2 6
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
2 7
En el segmento de datos
En el segmento de cdigo
2 8
14
En el segmento de cdigo
2 9
15