jueves, 2 de octubre de 2008

Interrupciones

Las interrupciones son llamadas al procesador para que éste "congele" lo que esta haciendo y preste un servicio , por ejemplo , al pulsar una tecla , el teclado envía una señal de interrupción y entonces el procesador ejecuta las ordenes del teclado para procesar esa acción.


Las principales interrupciones son:

  • 00h Generada por la CPU cuando se intenta hacer una división por cero.
  • 01h Utilizada par ir paso a paso por los programas (como DEBUG)
  • 02h Interrupción no enmascarable
  • 03h Utilizada para establecer puntos de ruptura en programas(igual que con DEBUG)
  • 04h Generada cuando operaciones aritméticas dan operaciones de desbordamientos
  • 05h Invoca la rutina de servicio de imprimir pantalla de la ROMBIOS
  • 06h Reservada para DOS
  • 07h Reservada para DOS
  • 08h Generada por el tic-tac del reloj del hardware
  • 09h Generada por acción del teclado
  • 0Ah Reservadas para BIOS
  • 0Bh Reservadas para BIOS
  • 0Ch Reservadas para BIOS
  • 0Dh Reservadas para BIOS
  • 0Eh Señala atención al diskette (por ejemplo, para señalar operación completada)
  • 0Fh Utilizada para controlar la impresora
  • 10h Invoca servicios de vídeo de la ROM BIOS
  • 11h Invoca el servicio de lista de equipamiento de ROM BIOS
  • 12h Invoca servicio de tamaño de memoria de la ROM BIOS
  • 13h Invoca servicios de disco de la ROM BIOS
  • 14h Invoca servicios de comunicaciones de la ROM BIOS
  • 15h Invoca servicios del sistema de la ROM BIOS
  • 16h Invoca los servicios estándar del teclado de la ROM BIOS
  • 17h Invoca los servicios de la impresora de la ROM BIOS
  • 18h Activa el lenguaje BASIC de la ROM
  • 19h Invoca la rutina cargadora de la secuencia de arranque de la ROM BIOS (invocarla equivale a hacer un RESET)
  • 1Ah Invoca los servicios de hora y fecha de la ROM BIOS
  • 1Bh Interrupción de la ROM BIOS para Ctrl-Break
  • 1Ch Interrupción generada con cada pulso de reloj
  • 1Dh Apunta a la tabla de parámetros de control del vídeo
  • 1Eh Apunta a la tabla de parámetros de la unidad de disco
  • 1Fh Apunta a los caracteres gráficos del CGA
  • 20h Invoca al servicio de terminación de programa del DOS
  • 21h Invoca a todos los servicios de llamada a función DOS
  • 22h Dirección de la rutina de terminación del programa del DOS
  • 23h Dirección de la rutina de break del teclado del DOS
  • 24h Dirección de la rutina de errores críticos del DOS
  • 25h Invoca al servicio de lectura absoluta del DOS
  • 26h Invoca al servicio de escritura absoluta del DOS
  • 27h Termina un programa, quedando residente
  • 28h Dos Idle
  • 29h Interno DOS. PutChar Rápido
  • 2Ah Reservado para DOS
  • 2Bh Reservado para DOS
  • 2Ch Reservado para DOS
  • 2Dh Reservado para DOS
  • 2Eh Ejecutar comando
  • 2Fh Interrupción múltiple del DOS
  • 30h Reservado para DOS
  • 31h Reservado para DOS

Servicios de la interrupción 10h (vídeo):

  • 00h Asignar modo de vídeo
  • 01h Asignar tipo de cursor
  • 02h Situar posición del cursor
  • 03h Leer posición del cursor
  • 04h Leer posición de lápiz óptico
  • 05h Seleccionar pagina de pantalla
  • 06h Inicializar ventana o desplazar su contenido en sentido ascendente
  • 07h Inicializar ventana o desplazar su contenido en sentido descendente
  • 08h Obtener atributo y carácter en el cursor
  • 09h Escribir atributo y carácter en el cursor
  • 0Ah Escribir únicamente carácter en el cursor
  • 0Bh Asignar paleta de colores
  • 0Ch Mostrar pixel gráfico
  • 0Dh Leer pixel gráfico
  • 0Eh Mostrar texto en modo teletipo
  • 0Fh Obtener modo de pantalla actual
  • 10h Mostrar registros de paleta
  • 11h Reservada
  • 12h Reservada
  • 13h Escribir cadena
  • FEh Obtener buffer del vídeo

Servicios de la interrupción 15h (ROM BIOS):

  • 21h Event Wait
  • 84h Leer Joystick
  • 86h Delay (CX DX)
  • 88h Tamaño mem.extend.
  • c0h Parámetros sistema
  • c1h Datos BIOS extendida

Servicios de la interrupción 16h (teclado):

  • 00h Leer carácter teclado
  • 01h Comprobar buffer teclado
  • 02h Obtener byte estado teclado
  • 03h Definir velocidad teclado
  • 05h Colocar en buffer teclado
  • 10h Leer carácter ampliado
  • 11h Comprobar buffer ampliado
  • 12h Obtener byte t.ampliado

Servicios de la interrupción 21h (sistema):

  • 00h Terminación de Programa
  • 01h Entrada de caracteres con eco
  • 02h Salida de caracteres
  • 03h Entrada auxiliar
  • 04h Salida auxiliar
  • 05h Salida de impresora
  • 06h E/S directa de consola
  • 07h Entrada de caracteres no filtrados sin eco
  • 08h Entrada de caracteres sin eco
  • 09h Salida de una cadena de caracteres
  • 0Ah Entrada con buffer
  • 0Bh Obtener status de entrada
  • 0Ch Borrar buffer de entrada y aceptar entrada posterior
  • 0Dh Reset de disco
  • 0Eh Asignar unidad de disco por defecto
  • 0Fh Abrir fichero
  • 10h Cerrar fichero
  • 11h Buscar primera coincidencia
  • 12h Buscar siguiente coincidencia
  • 13h Borrar fichero
  • 14h Lectura secuencial
  • 15h Escritura secuencial
  • 16h Crear o truncar
  • 17h Cambiar nombre de fichero
  • 18h Reservado
  • 19h Obtener unidad de disco por defecto
  • 1Ah Asignar dirección de la zona de transferencia de disco
  • 1Bh Obtener información de ubicación para unidad por defecto
  • 1Ch Obtener información de ubicación para unidad especifica
  • 1Dh Reservado
  • 1Eh Reservado
  • 1Fh Reservado
  • 20h Reservado
  • 21h Lectura aleatoria
  • 22h Escritura aleatoria
  • 23h Obtener tamaño de fichero
  • 24h Asignar numero de registro aleatorio
  • 25h Asignar vector de interrupción
  • 26h Crear prefijo del segmento de programa
  • 27h Lectura aleatoria de bloque
  • 28h Escritura aleatoria de bloque
  • 29h Análisis (transcripción) de nombre de fichero
  • 2Ah Obtener fecha del sistema
  • 2Bh Asignar fecha al sistema
  • 2Ch Obtener hora del sistema
  • 2Dh Asignar hora al sistema
  • 2Eh Activar flag de vinificación
  • 2Fh Obtener dirección de la zona de transferencia de disco
  • 30h Obtener numero de versión MS-DOS
  • 31h Terminar y permanecer residente
  • 32h Reservado
  • 33h Obtener o activar flag de Ctrl-Break
  • 34h Reservado
  • 35h Obtener vector de interrupción
  • 36h Obtener espacio libre en disco
  • 37h Reservado
  • 38h Obtener o asignar pais
  • 39h Crear subdirectorio
  • 3Ah Borrar subdirectorio
  • 3Bh Asignar directorio actual
  • 3Ch Crear o truncar fichero
  • 3Dh Abrir fichero
  • 3Eh Cerrar fichero
  • 3Fh Leer fichero o dispositivo
  • 40h Escribir en fichero o dispositivo
  • 41h Borrar fichero
  • 42h Desplazar puntero del fichero
  • 43h Obtener o asignar atributos del fichero
  • 44h Control de gestor de dispositivo (IOCTL)
  • 45h Duplicar handle
  • 46h Duplicación forzada de handle
  • 47h Obtener directorio actual
  • 48h Asignar memoria
  • 49h Liberar memoria
  • 4Ah Modificar Asignación de memoria
  • 4Bh Ejecutar programa
  • 4Ch Terminar con código de retorno
  • 4Dh Obtener código de retorno
  • 4Eh Buscar primera coincidencia
  • 4Fh Buscar siguiente coincidencia
  • 50h Reservado
  • 51h Reservado
  • 52h Reservado
  • 53h Reservado
  • 54h Obtener flag de vinificación
  • 55h Reservado
  • 56h Cambiar nombre de fichero
  • 57h Obtener o cambiar fecha y hora de fichero
  • 58h Obtener o asignar estrategia de ubicación
  • 59h Obtener información extendida de error
  • 5Ah Crear fichero temporal
  • 5Bh Crear nuevo fichero
  • 5Ch Bloquear registros
  • 5Dh Reservado
  • 5Eh Obtener nombre de la maquina/instalación de impresora
  • 5Fh Asignar entrada de lista
  • 60h Reservado
  • 61h Reservado
  • 62h Obtener dirección del prefijo del segmento de programa
  • 63h Obtener tabla de encabezado de bytes

No hay comentarios: