You are on page 1of 23

Docente Laura Almada 1

Una interrupcin detiene la ejecucin del programa para


invocar a otra rutina.
Una vez concluido este ltimo proceso se devuelve el
control a la aplicacin anterior.
Por ejemplo, cuando estamos trabajando con un proceso
y en ese momento llega un aviso de uno de los puertos de
comunicaciones, se detiene temporalmente la aplicacin
que estamos utilizando para permitirle al procesador el
manejo de la informacin que est llegando .

Docente Laura Almada 2


Tabla de Vectores de interrupcin
DOS maneja una tabla de 256 vectores de 4 bytes ,a partir de la
direccin 0 de memoria. Cada interrupcin tiene una rutina
asociada .

Direccin de la
segmento desplazamiento rutina de servicio

Int 0 Int 21h Int 255


0:0 0 : 84h 0 : 1020h

INT 21h
Docente Laura Almada 3
El sistema de interrupciones se divide en 2
categoras
Interrupciones de hardware

Permiten que los dispositivos interrumpan al procesador para


requerir atencin. En terminologa DOS se denominan IRQs
Interrupciones de hardware internas
Interrupciones de hardware externas(enmascarable/no
enmascarable)

Interrupciones de software
El programa invoca un handler del que no conoce la ubicacin
exacta en memoria.Pueden ser activadas invocando el nmero
de interrupcin deseada con la instruccin INT().
Este tipo de interrupciones podemos separarlas en :
Interrupciones del sistema operativo DOS
las interrupciones del ROM BIOS. Usuario
Docente Laura Almada 4
Docente Laura Almada 5
INTERRUPCIONES INTERNAS DE HARDWARE

Las interrupciones internas son generadas por ciertos eventos que


surgen durante la ejecucin 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 interrupcin varias veces durante
un segundo para mantener la hora actualizada.

No podemos manejar directamente esta Interrupcin .

Docente Laura Almada 6


INTERRUPCIONES EXTERNAS DE HARDWARE:

Las interrupciones externas las generan los


dispositivos perifricos: teclado , impresoras, tarjetas
de comunicaciones, etc.

Tambin son generadas por los coprocesadores.

No es posible desactivar directamente a las


interrupciones externas.

Docente Laura Almada 7


INTERRUPCIONES DEL DOS.
Las interrupciones desde la 20H hasta la 3FH estn reservadas para
operaciones del DOS. Algunas de ellas:

INT 21H: Peticin de servicios DOS. La principal operacin del DOS


necesita una funcin en el AH.
INT 25H: Lee el contenido de uno o ms sectores de disco.

INT 26H:Escribe informacin desde la memoria a uno o ms


sectores de disco.

INT 27H:Hace que un programa .COM al salir permanezca residente


en memoria.

INT 2FH:Interrupcin mltiple de DOS

Docente Laura Almada 8


Interrupciones del sistema ROM- BIOS

El BIOS es especfico para cada sistema y es


proporcionado por el fabricante.

Contiene un extenso conjunto de rutinas de


entrada/salida , drivers dependientes del hardware y
tablas que indican el estado de los dispositivos del
sistema.

Docente Laura Almada 9


INTERRUPCIONES DEL BIOS MS DOS
Contiene los drivers del hardware instalado. Algunas de ellas:

INT 00H: Divisin por cero. Llamada por un intento de dividir


entre cero. Muestra un mensaje y por lo regular el sistema se
cuelga.
INT 01H: Un solo paso. Usado por DEBUG y otros depuradores
para permitir avanzar por paso a travs de la ejecucin de un
programa. single step
INT 02H: Usada para condiciones graves de hardware, tal como
errores de paridad, que siempre estn habilitados. non-maskable
interrupt
INT 03H: Usado por depuracin de programas para detener la
ejecucin. breakpoint
INT 04H:Puede ser causado por una operacin aritmtica,
aunque por lo regular no realiza accin alguna. overflow trap
Docente Laura Almada 10
IRQ0 INT 08H: Una interrupcin de hardware que
actualiza la hora del sistema y (si es necesario) la
fecha.
IRQ1 INT 09H: Interrupcin del teclado.

IRQ3 INT 0BH: Controla puertoCOM1

IRQ4 INT 0CH:Controla puerto COM2 Puertos serie.

IRQ 6 INT 0Eh:Seala atencin al diskette floppy disk


service required

Docente Laura Almada 11


El DOS y los programas usuarios pueden
solicitar rutinas del BIOS para la comunicacin
con los dispositivos conectados al sistema.

Docente Laura Almada 12


Servicios de ROM BIOS
INT 05H: Invoca rutina de servicio imprimir
pantalla. print screen
INT 10h: invoca servicio de video video services
INT 11h: invoca servicio de equipamiento
INT 12h: invoca servicio tamao de memoria
report memory size
INT 13h: invoca servicio de disco disk I/O services
INT 14h: invoca servicio comunicacin serie serial
communications
INT 15h: invoca servicio sistema extended
services
INT 16h: invoca servicio de teclado standad
keyboard I/O services
Docente Laura Almada 13
Funciones de D.O.S. (INT 21h)
Para usar los recursos del sistema ,MS DOS ofrece un
conjunto de subrutinas o funciones llamadas System calls.
En MS-DOS/ Windows son llamadas a travs de rutinas de
atencin a interrupcin. La mayora de las funciones son
accedidas a travs de la interrupcin 21H.
Podemos acceder a:
Manejo del teclado
Salida por pantalla modo texto
Manejo de archivos y directorios
Manejo de fecha y hora

Docente Laura Almada 14


Algunos servicios de la interrupcin 21h
(sistema)
Servicio Descripcin
00 Terminacin de Programa
01 Entrada de caracteres con eco
02 Salida de caracteres
03 Entrada auxiliar
04 Salida auxiliar
05 Salida de impresora
06 E/S directa de consola
07 Entrada de caracteres no filtrados sin eco
08 Entrada de caracteres sin eco
09 Salida de una cadena de caracteres

Docente Laura Almada 15


Servicio Descripcin
0A Entrada con buffer
0B Obtener status de entrada
0C Borrar buffer de entrada y aceptar entrada
posterior
0D Reset de disco
0E Asignar unidad de disco po defecto
0F Abrir fichero
10 Cerrar fichero
11 Buscar primera coincidencia
12 Buscar siguiente coincidencia
13 Borrar fichero
14 Lectura secuencial
15 Escritura secuencial
Docente Laura Almada 16
Int 21 /01h
Entrada de caracteres.

Servicio/Funcin 01- Lectura de caracteres por la


entrada std. (Teclado)
INT 21h / AH=01 ;lee un caracter desde el teclado ,con
eco.El resultado es almacenado en AL.
Si no hay ningn caracter en el buffer del teclado ,la fn
espera hasta que una tecla sea presionada.
ejemplo:
mov ah,01
int 21h

Docente Laura Almada 17


I
INT21h/02h

Servicio/Funcin 02-Impresin de caracteres por la salida


std. (Pantalla)

INT 21h / AH=02 ;nombre de la sub-fn.Escribe un caracter


en la salida standard.
DL =cdigo ASCII del caracter a escribir.
Luego de la ejecucin:caracter en monitor y AL = DL.

Ejemplo de uso:
mov ah, 2
mov dl, a
int 21h

Docente Laura Almada 18


INT 21h/09h
Servicio/Funcin 09H- Impresin de una cadena de
caracteres en pantalla

INT 21h / AH=09H


DS:DX :apunta a la direccin de Desplazamiento de la
cadena a visualizar (en DX offset del string en el Data
Segment)
DS debe apuntar al segmento donde se encuentra la
cadena.
DX debe contener el desplazamiento de la cadena dentro
de ese segmento. La cadena debe terminar con $.

Docente Laura Almada 19


Ejemplo Int21h/09H

Definicin del texto en Data segment

MSG DB "Este es un mensaje$" o Este es un mens...","$"

mov AH, 09H


mov DX, Offset MSG
int 21 H

EFECTO: Se enva una cadena de caracteres al dispositivo


estndar de salida.

Docente Laura Almada 20


INT 21h/0Ah

Funcin 0AH- GET_STRING,lectura de cadena por teclado

INT 21h / AH=0Ah ; Permite leer una cadena completa de


la entrada standard hacia DS:DX, 1er byte es el tamao del
buffer,2do byte nmeros de chars ledos. Esta fucin no
agrega '$' al final de la string.
Para imprimir usando INT 21h / AH=09h debemos poner el
'$ al final de la cadena y empezar a imprimir desde la
direccin DS:DX + 2.

Docente Laura Almada 21


Ejemplo:

Debo defininir e inicializar el Buffer en el Data Segment


BUF DB 6,0,0,0,0,0,0 (6-smbolos, 5 lugares con cero, y ltimo cero
es para RETURN ).

Cdigo:
.
.
.
mov AH; 0Ah
mov DX, Offset BUF
INT 21H

Docente Laura Almada 22


INT21H/4Ch
Funcin 4CH:retorna el control al sistema operativo.stop
program
INT 21h / AH=4Ch
Mediante este cdigo de retorno, se puede ofrecer
informacin al programa padre acerca de la ejecucin del
programa (si se ha producido error, etc...)
La terminacin del programa conlleva:

Liberacin de toda la memoria asignada al programa.


Todos los buffers de archivos son vaciados.
Se cierra cualquier fichero abierto por el programa
Se restauran los tres vectores de interrupcin (INT 22H,
INT 23H, INT 24H) cuyo contenido original fue
almacenado en la pila.
Docente Laura Almada 23

You might also like