Interrupciones
Algunas veces el flujo ordinario de un programa debe ser interrumpido para procesar eventos que requieren una respuesta rápida. El hardware de un computador provee un mecanismo llamado interrupción para manipular estos eventos. Por ejemplo cuando se mueve el ratón la interrupción de hardware del ratón es el programa actual para manejar el movimiento del ratón (para mover el cursor del mouse, etc) Las interrupciones hacen que el control se pase a un manipulador de interrupciones. Los manipuladores de interrupciones son rutinas que procesan la interrupción. A cada tipo de interrupción se le asigna un numero entero. En el comienzo de la memoria física una tabla de vectores de interrupción que contiene la dirección del segmento de los manipuladores de la interrupción. El numero de la interrupción es esencialmente un indice en esta tabla.
Interrupciones internas de hardware
Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecución de un programa.
Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es posible modificarlas.
Un ejemplo claro de este tipo de interrupciones es la que actualiza el contador del reloj interno de la computadora, el hardware hace el llamado a esta interrupción varias veces durante un segundo para mantener la hora actualizada.
Aunque no podemos manejar directamente esta interrupción (no podemos controlar por software las actualizaciones del reloj), es posible utilizar sus efectos en la computadora para nuestro beneficio, por ejemplo para crear un "reloj virtual" actualizado continuamente gracias al contador del reloj interno. Únicamente debemos escribir un programa que lea el valor actual del contador y lo traduzca a un formato entendible para el usuario.
Interrupciones externas de hardware
Las interrupciones externas las generan los dispositivos periféricos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. También son generadas por los co-procesadores.
No es posible desactivar a las interrupciones externas.
Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito integrado cuya función es exclusivamente manejar este tipo de interrupciones. El circuito, llamado PIC 8259A, si es controlado por la UCP utilizando para tal control una serie de vías de comunicación llamadas puertos.
Interrupciones de software
Las interrupciones de software pueden ser activadas directamente por el ensamblador invocando al número de interrupción deseada con la instrucción INT.
El uso de las interrupciones nos ayuda en la creación de programas, utilizándolas nuestros programas son más cortos, es más fácil entenderlos y usualmente tienen un mejor desempeño debido en gran parte a su menor tamaño.
Este tipo de interrupciones podemos separarlas en dos categorías: las interrupciones del sistema operativo DOS y las interrupciones del BIOS.
La diferencia entre ambas es que las interrupciones del sistema operativo son más fáciles de usar pero también son más lentas ya que estas interrupciones hacen uso del BIOS para lograr su cometido, en cambio las interrupciones del BIOS son mucho más rápidas pero tienen la desventaja que, como son parte del hardware son muy específicas y pueden variar dependiendo incluso de la marca del fabricante del circuito.
- Int 21H (interrupción del DOS)
- Int 10H (interrupción del BIOS)
- Int 16H (Interrupción del BIOS)
Propósito: Llamar a diversas funciones del DOS.
Sintaxis: Int 21H
Esta interrupción tiene varias funciones, para accesar a cada una de ellas es necesario que el el registro AH se encuentre el número de función que se requiera al momento de llamar a la interrupción.
Funciones para desplegar información al vídeo.
- 02H Exhibe salida
- 09H Impresión de cadena (vídeo)
- 40H Escritura en dispositivo/Archivo
Funciones para leer información del teclado.
- 01H Entrada desde teclado
- 0AH Entrada desde teclado usando buffer
- 3FH Lectura desde dispositivo/archivo
Funciones para trabajar con archivos.
En esta sección únicamente se expone la tarea específica de cada función, para una referencia acerca de los conceptos empleados refierase a la unidad 7, titulada: "Introducción al manejo de archivos".
Método FCB
- 0FH Abrir archivo
- 14H Lectura secuencial
- 15H Escritura secuencial
- 16H Crear archivo
- 21H Lectura aleatoria
- 22H Escritura aleatoria
Handles
- 3CH Crear archivo
- 3DH Abrir archivo
- 3EH Cierra manejador de archivo
- 3FH Lectura desde archivo/dispositivo
- 40H Escritura en archivo/dispositivo
- 42H Mover apuntador de lectura/escritura en archivo
Propósito: Llamar a diversas funciones de vídeo del BIOS.
Sintaxis: Int 10H
Esta interrupción tiene diversas funciones, todas ellas nos sirven para controlar la entrada y salida de vídeo, la forma de acceso a cada una de las opciones es por medio del registro AH.
Funciones comunes de la interrupción 10H.(algunas de las funciones de esta interrupción)
- 02H Selección de posición del cursor
- 09H Escribe atributo y carácter en el cursor
- 0AH Escribe carácter en la posición del cursor
- 0EH Escritura de caracteres en modo alfanumérico
Propósito: Manejar la entrada/salida del teclado.
Sintaxis: Int 16H
Veremos dos opciones de la interrupción 16H, estas opciones, al igual que las de otras interrupciones, son llamadas utilizando el registro AH.
Funciones de la interrupción 16H
- 00H Lee un carácter de teclado
- 01H Lee estado del teclado
Código para limpiar pantalla
MOV AX,0600H ;RECORRER TODO LA PANTALLA
MOV BH,07H ;ATRIBUTO FONDO NEGRO LETRAS BLANCAS
MOV CX,0000H ;POSICIÓN IZQUIERDA SUPERIOR
MOV DX,184FH ;POSICIÓN DERECHA INFERIOR
INT 10H ;INTERRUPCIÓN
No hay comentarios.:
Publicar un comentario