You are on page 1of 23

Definicin de

interrupcin
Una interrupcin es un estado en el cual el

microprocesador detiene la ejecucin de un


programa para atender una peticin especial
solicitada por el propio programa o por un
dispositivo fsico conectado al microprocesador
externamente.
Las interrupciones fueron creadas para facilitar
al programador el acceso a los diferentes
dispositivos de la computadora (puertos de
comunicaciones, terminales, impresoras, etc.).

Ejecucin de una
interrupcin
Cuando durante la ejecucin de un programa se produce una interrupcin, el
Microprocesador realiza los siguientes pasos:

1.- Detiene la ejecucin del programa


2.- Almacena los registros CS, IP y Banderas en la pila
3.- Modifica el CS y el IP para que apunten a la direccin donde se encuentra
la rutina de interrupcin.
4.- Ejecuta las instrucciones de la rutina de interrupcin.
5.- Restablece usando la instruccin RETI los valores originales de los
registros CS, IP y Banderas.
6.- Continua con la ejecucin del programa en el punto donde fue
interrumpido.
Las rutinas se almacenan en la memoria de la computadora cada vez que
sta es
inicializada, a esto se le conoce como vector de interrupciones.

Tipos de
interrupciones
El microprocesador puede atender dos

tipos de interrupciones: interrupciones por


software e interrupciones por hardware
(internas y externas).

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.

Aunque no podemos manejar directamente esta interrupcin (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 perifricos, como pueden ser: teclado,
impresoras, tarjetas de comunicaciones, etc.
Tambin son generadas por los coprocesadores.
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 funcin 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 vias de comunicacin llamadas puertos.

Interrupciones de
software
Las interrupciones de software pueden ser activadas directamente

por el ensamblador invocando al nmero de interrupcin deseada


con la instruccin INT.
El uso de las interrupciones nos ayuda en la creacin de programas,
utilizandolas nuestros programas son ms cortos, es ms fcil
entenderlos y usualmente tienen un mejor desempeo debido en
gran parte a su menor tamao.
Este tipo de interrupciones podemos separarlas en dos categorias:
las interrupciones del sistema operativo DOS y las interrupciones
del BIOS.
La diferencia entre ambas es que las interrupciones del sistema
operativo son ms fciles de usar pero tambin son ms lentas ya
que estas interrupciones hacen uso del BIOS para lograr su
cometido, en cambio las interrupciones del BIOS son mucho ms
rpidas pero tienen la desventaja que, como son parte del
hardware son muy especficas y pueden variar dependiendo incluso
de la marca del fabricante del circuito.
La eleccin del tipo de interrupcin a utilizar depender unicamente
de las caracteristicas que le quiera dar a su programa: velocidad
(utilizando las del BIOS) o portabilidad (utilizando las del DOS).

Interrupcin 10H.
Propsito: Llamar a diversas funciones de
video del BIOS.
Sintaxis: Int 10H
Esta interrupcin tiene diversas funciones,
todas ellas nos sirven para controlar la
entrada y salida de video, la forma de acceso
a cada una de las opciones es por medio del
registro AH.

INT 10H Funcin 00H

Establecer modo de Vdeo


LLAMADA:
AH = 00H
AL = Modo de vdeo.
DEVUELVE: NADA.
EFECTO: Selecciona y activa el modo de vdeo especificado. A
no ser que se utilice el truco que se indica a continuacin,
al llamar a esta funcin, se borra la pantalla. Pero se borra
el contenido de pantalla. Por suerte hay una especie de
'truco' para evitar este borrado automtico de la pantalla.
Consiste en poner con valor 1 el bit 7 del registro AL (que
contiene el modo de vdeo) en la llamada a la funcin. As
por ejemplo, si queremos cambiar a modo 13h, y queremos
que se pierda el contenido que hubiera en la pantalla en
este modo, en vez de introducir en AL el nmero 13h
(00010011b), introduciramos el nmero 93h (10010011b).
TARJETA GRAFICA: TODAS (MDA, CGA, EGA, MCGA, VGA...)

Modos de vdeo y caractersticas


principales

Modos superiores al 13h pertenecen a tarjetas Super-VGA superior.

INT 10H Funcin 01H

Establecer tamao del Cursor


LLAMADA:
AH = 01H
Bits 0-4 de CH = Lnea inicial del Cursor
Bits 0-4 de CL = Lnea final del Cursor.
DEVUELVE:
NADA.
EFECTO: Se selecciona un nuevo tamao de
Cursor en modo texto.

INT 10H Funcin 02H

Posicionar el Cursor
LLAMADA:
AH = 02H
BH = Pgina de vdeo
DH = Lnea donde situar el cursor
DL = Columna donde situar el cursor
DEVUELVE: NADA.
EFECTO:
Posiciona el cursor en pantalla, de acuerdo a las coordenadas indicadas en
los registros DH y DL Slo se desplazar el cursor si la pgina de vdeo
indicada mediante BH es la pgina de vdeo activa. Esto es as ya que
existe un cursor independiente para cada una de las pginas de vdeo
con las que contamos en el modo actual.
Las coordenadas para la columna empiezan a partir de 0. Las coordenadas
para la fila empiezan a partir de 0. Esto quiere decir que la esquina
superior izquierda de la pantalla tendr las coordenadas
(lnea=0,columna=0). La columna mxima es la 39 (si estamos en un
modo de vdeo de 40 columnas) la 79 (si estamos en un modo de
vdeo de 80 columnas). La lnea mxima es la 24 (si estamos en un
modo de vdeo de 25 lneas) la 49 (si estamos en un modo de vdeo
de 50 lneas).
(Un 'truco' para hacer desaparecer el cursor de la pantalla consiste en dar
valores no vlidos para la columna o la fila. Por ejemplo, si damos a la
columna el valor 100, el cursor desaparece de la pantalla)

INT 10H Funcin 03H

Buscar posicin del Cursor y Tamao


LLAMADA:
AH = 03H
BH = Pgina de vdeo.
DEVUELVE:
CH = Lnea inicial del cursor
CL = Lnea final del cursor
DH = Fila donde se encuentra el cursor
DL = Columna donde se encuentra el cursor
EFECTO: Obtiene las coordenadas del cursor en una
pgina de vdeo dada. Tambin se obtiene el
tamao del cursor.

INT 10H Funcin 05H

Establecer nueva pgina de vdeo


LLAMADA:
AH = 05H
AL = Pgina de vdeo.
DEVUELVE: NADA.
EFECTO: Establece como activa la nueva pgina de vdeo indicada mediante
el registro AL, mostrndose por pantalla el contenido de esa pgina de
vdeo, y situando el cursor en la posicin que le corresponda para esa
pgina de vdeo. Las pginas posibles para cada modo de vdeo son:

Los modos de vdeo 11h en adelante cuentan slo con una pgina de
vdeo.

INT 10H Funcin 06H

Desplazar lneas de texto hacia arriba


LLAMADA:
AH = 06H
AL = Nmero de lneas a desplazar. Si AL=0, se borra
toda la ventana seleccionada mediante los registros CX
y DX
BH = Atributo a usar en las lneas borradas.
CH = Lnea donde comienza la ventana de texto.
CL = Columna donde comienza la ventana de texto.
DH = Lnea donde acaba la ventana de texto.
DL = Columna donde acaba la ventana de texto.
DEVUELVE: NADA.
EFECTO: Desplaza hacia arriba un nmero determinado
de lneas en la ventana especificada mediante los
registros CX y DX. Las lneas desplazadas, quedan
vacas, rellenndose con blancos. El color utilizado en
estas lneas vacas se indica mediante el registro BH.

INT 10H Funcin 07H

Desplazar lneas de texto hacia abajo


LLAMADA:
AH = 07H
AL = Nmero de lneas a desplazar. Si AL=0, se borra
toda la ventana seleccionada mediante los registros CX
y DX
BH = Atributo a usar en las lneas borradas.
CH = Lnea donde comienza la ventana de texto.
CL = Columna donde comienza la ventana de texto.
DH = Lnea donde acaba la ventana de texto.
DL = Columna donde acaba la ventana de texto.
DEVUELVE:
NADA.
EFECTO: Desplaza hacia abajo un nmero determinado de
lneas en la ventana especificada mediante los registros
CX y DX . Las lneas desplazadas, quedan vacas,
rellenndose con blancos. El color utilizado en estas
lneas vacas se indica mediante el registro BH.

INT 10H Funcin 08H

Leer carcter y atributo


LLAMADA:
AH = 08H
BH = Pgina de vdeo.
DEVUELVE:
AH = Atributo (color del carcter).
AL = Cdigo ASCII del carcter ledo.
EFECTO: Mediante la llamada a esta funcin, se
devuelve en AL el cdigo del carcter situado en
la posicin del cursor. As mismo, obtenemos en
AH el color de este carcter.

INT 10H Funcin 09H

Escribir carcter y atributo


LLAMADA:
AH = 09H
AL = Cdigo del carcter a escribir.
BH = Pgina de vdeo donde escribir el carcter.
BL = Atributo color que va a tener el carcter.
CX = Cantidad de veces que se debe escribir el
carcter, uno a continuacin de otro.
DEVUELVE:
NADA.
EFECTO:
Se escribe un carcter en la posicin actual del cursor,
en la pgina de vdeo deseada. El carcter tendr el
color indicado mediante BL.

INT 10H Funcin 0AH

Escribir carcter
LLAMADA:
AH = 0AH
AL = Cdigo del carcter a escribir.
BH = Pgina de vdeo donde escribir el carcter.
CX = Cantidad de veces que se debe escribir el
carcter, uno a continuacin de otro.
DEVUELVE:
NADA.
EFECTO:
Se escribe un carcter en la posicin actual del cursor,
en la pgina de vdeo deseada. El carcter tendr el
mismo color que tuviera el carcter antiguo en esa
posicin. Es decir, se modifica el carcter, pero no el
color. En caso de querer modificar el color del
carcter, usar la funcin 09h.

INT 10H Funcin 0CH

Escribir un punto pixel grfico


LLAMADA:
AH = 0CH
AL = Valor del color a usar.
BH = Pgina de vdeo donde escribir el carcter.
CX = Columna donde escribir el pixel (coordenada grfica
x)
CX = Fila donde escribir el pixel (coordenada grfica y)
DEVUELVE:
NADA.
EFECTO:
Da un nuevo color a un pixel grfico. Funcin vlida slo
para modos grficos.

INT 10H Funcin 0DH

Obtener el color de un pixel grfico


LLAMADA:
AH = 0DH
BH = Pgina de vdeo.
CX = Columna del pixel que nos interesa (coordenada
grfica x).
DX = Fila del pixel que nos interesa (coordenada grfica y).
DEVUELVE:
AL = Valor del color del pixel.
EFECTO:
Obtiene el color de un punto grfico de la pantalla. Este
punto se referenciar mediante las coordenadas grficas
(x,y): (CX,DX). Funcin vlida slo para modos grficos.

INT 10H Funcin 0FH

Obtener el Modo de vdeo actual


LLAMADA:
AH = 0FH
DEVUELVE:
AL = Modo de vdeo actual.
AH = Cantidad de caracteres que caben en una lnea en
el modo de vdeo actual.
BH = Nmero de la pgina activa.
EFECTO:
Mediante esta funcin podemos saber en todo
momento, en qu modo de vdeo estamos trabajando.
La utilidad de esta funcin reside sobre todo en la
construccin de programas residentes.

EJEMPLOS

You might also like