Está en la página 1de 18

INDICE

INTRODUCCIÓN ................................................................................................................................... 2
TIPOS DE INTERRUPCIONES ................................................................................................. 2
MARCO TEORICO ................................................................................................................................. 4
INTERRUPCION 21H ................................................................................................................. 4
FUNCIONES ................................................................................................................................. 4
CONCLUSIÓN ..................................................................................................................................... 17
BIBLIOGRAFIA .................................................................................................................................... 18

1
INTRODUCCIÓN

IBM tomó una decisión respecto a la arquitectura de sus computadoras personales destinada
a marcar un cambio notable en la historia de la tecnología. Adoptó una arquitectura abierta,
esto es, utilizó componentes que estaban en el mercado en lugar de fabricar chips
propietarios. Al tomar esta resolución, Intel pasó a ser la opción más clara como proveedor
de procesadores y periféricos: por aquél entonces acababa de salir al mercado la línea de 16
bits 8086 y existían muchos periféricos de 8 bits de su predecesor, el 8085, tales como el
controlador de interrupciones 8259, el PPI 8255, DMA 8237, la UART 8251, el timer 8253.
En los procesadores Intel de la línea X86, hay dos tipos de interrupciones: por hardware y
por software. En las primeras, una señal llega a uno de los terminales de un controlador de
interrupciones 8259 y éste se lo comunica al procesador mediante una señal LOW en su pin
INT. El procesador interroga al 8259 cuál es la fuente de la interrupción (hay 8 posibles en
un 8259) y este le muestra en el bus de datos un vector que la identifica. Por instrucciones de
programa, se puede instruir al 8086 para que ignore la señal en el pin INT, por lo que estas
interrupciones se denominan "enmascarables". Hay un pin adicional llamado NMI, que se
comporta como una interrupción, pero imposible de bloquear (Non-Maskable-Interrupt).

TIPOS DE INTERRUPCIONES
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.

2
Interrupciones externas de hardware

Las interrupciones externas las generan los dispositivos perifericos, como pueden ser:
teclado, impresoras, tarjetas de comunicaciones, etc. También 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
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 vias de
comunicación llamadas puertos.

Interrupciones de software

Las interrupciones por software se comportan de igual manera que las de hardware pero en
lugar de ser ejecutadas como consecuencia de una señal física, lo hacen con una
instrucción. 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. La elección del tipo de
interrupción a utilizar dependerá únicamente de las características que le quiera dar a su
programa: velocidad (utilizando las del BIOS) o portabilidad (utilizando las del DOS).

Hay en total 256 interrupciones, de la 0 a la 7 (excepto la 5) son generadas directamente por


el procesador. Las 8 a 0Fh son interrupciones por hardware primitivas de las PC. Desde la
AT en adelante, se incorporó un segundo controlador de interrupciones que funciona en
cascada con el primero a través de la interrupción 2 (de ahí que en la tabla siguiente se la

3
denomine múltiplex). Las 8 interrupciones por hardware adicionales de las AT se ubican a
partir del vector 70h.

MARCO TEORICO

INTERRUPCION 21H Y SUS FUNCIONES


INTERRUPCION 21H
La mayoría de servicios ó funciones del sistema operativo MS-DOS se obtienen a través de
la interrupción software 21H. Es por esto que se le denomina DOS-API: DOS-
APPLICATION-PROGRAM-INTERFACE La INT 21H está compuesta por un grupo de
funciones. Cuando se accede a la INT 21H, hay que indicar el número de función que
queremos ejecutar. La llamada a la INT 21H se realizará como sigue:
 Introducimos en (AH) el número de función a la que deseamos acceder.
 En caso de que deseemos acceder a una sub-función dentro de una función, debemos
indicarlo introduciendo en (AL) el número de esa sub-función.
 Llamar a la INT 21H.

FUNCIONES
INT 21H Función 01H (Entrada de Carácter con Eco (o salida).)
Llamada:
AH = 01H
Devuelve: AL = Código ASCII del Carácter leído y Echo a pantalla
(si AH =08H) es servicio sin Echo)
Efecto: Se lee un carácter del dispositivo de entrada estándar, y se envía al dispositivo
estándar de salida. Si al llamar a la función no había ningún carácter disponible, se esperará
a que lo haya. Normalmente el dispositivo estándar de entrada es el teclado, y el dispositivo
estándar de salida es la pantalla.

INT 21H Función 02H (Salida de Carácter.)


Llamada:
AH = 02H
DL = Código ASCII a enviar al dispositivo de salida.

4
Devuelve: NADA.
Efecto: Se envía el carácter depositado en el registro DL al dispositivo estándar de salida. La
salida puede ser re direccionada hacia un fichero, impresora, etc.

INT 21H Función 05H (Envío de Carácter a la Impresora.)


Llamada:
AH = 05H
DL = Código ASCII a enviar al dispositivo de salida.
Devuelve: NADA.
Efecto: Se envía el carácter depositado en DL al puerto paralelo. Si no se ha re direccionado
la salida, el dispositivo por defecto en el puerto paralelo de salida (LPT1 o PRN) es la
impresora.

INT 21H Función 06H (Envío de Carácter a la pantalla como símbolo.)


Llamada:
AH = 06H
DL = símbolo entre "cuotation marks" 'A' ó "#".
Devuelve: NADA

INT 21H Función 09H (Visualización de una cadena de caracteres.)


Llamada:
AH = 09H
DS: DX = Segmento: Desplazamiento de la cadena a visualizar (in DX - offset address of
string in data segment)
DS debe apuntar al segmento donde se encuentra la cadena.
DX debe contener el desplazamiento de la cadena dentro de ese segmento.
Ejemplo: Definition of the message in Data segment
MSG DB "This is a message$" or "This...","$"
Program in Code segment
Mov AH, 09H
Mov DX, Offset MSG

5
Int 21 H
Devuelve: NADA.
Efecto: Se envía una cadena de caracteres al dispositivo estándar de salida. Si no se ha re
direccionado la salida, la cadena se enviará a la pantalla.
INT 21H Función 0AH (Leer cadena de símbolos desde teclado y su código se almacena
al buffer.)
Llamada:
AH = 0AH
DX = dirección de buffer en segmento de datos
Devuelve: En dirección DS: DX la cadena de ASCII códigos de símbolos entrantes
Ejemplo: Define Buffer address in data segment
BUF DB 6,0,0,0,0,0,0 (6-simbols, 5 places for input simbols by zero, and last zero is
for RETURN). More than 6 - beep and ignore
In code segment the program
Mov AH; 0Ah
Mov DX, Offset BUF
INT 21H; input 5 symbols to buffer with "return" code and output all of them to
screen.

INT 21H Función 0BH (Comprobación del estado de la entrada.)


Llamada:
AH = 0BH
Devuelve:
AL = 00H si no hay carácter disponible.
AL = FFH si hay algún carácter disponible.
Efecto: Se comprueba si hay algún carácter procedente del dispositivo estándar de entrada.
La entrada puede ser re direccionada. Si no hay tal redirección, se comprueba el buffer de
teclado.

INT 21H Función 0EH (Selección de disco)


Llamada:

6
AH = 0EH
DL = Código de la unidad (0=A, 1=B, etc.)
Devuelve: AL = Número de unidades lógicas del sistema
Efecto: Selecciona una unidad de disco para que se convierta en la unidad por defecto o
actual. Ofrece además información acerca del número total de unidades lógicas del sistema.
Una unidad física como un disco duro puede estar particionada en varias unidades lógicas
designadas por C, D, E, etc.

INT 21H Función 19H (Obtener disco actual.)


Llamada:
AH = 19H
Devuelve: AL = Código de la unidad actual (0=A, 1=B, etc.)
Efecto: Devuelve el código de la unidad de disco activa o por defecto.

INT 21H Función 39H (Crear directorio.)


Llamada:
AH = 39H
DS: DX = Segmento: Desplazamiento de una cadena ASCII con el nombre del directorio.
Devuelve: Si se ejecutó correctamente: Flag de acarreo (Cf) = 0
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Se crea un nuevo directorio usando la unidad de disco y la vía de acceso especificada
en la cadena ASCIIZ.

INT 21H Función 3AH (Borrar directorio.)


Llamada:
AH = 3AH
DS: DX = Segmento: Desplazamiento de una cadena ASCII con el nombre del directorio a
borrar.
Devuelve:
Si se ejecutó correctamente: Flag de acarreo (Cf) = 0

7
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Se elimina el directorio indicado de la unidad de disco y la vía de acceso especificada
en la cadena ASCII.

INT 21H Función 3BH (Establecer directorio actual.)


Llamada:
AH = 3BH
DS: DX = Segmento: Desplazamiento de una cadena ASCII con el nombre del directorio.
Devuelve:
Si se ejecutó correctamente: Flag de acarreo (Cf) = 0
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Establece como directorio actual el indicado mediante la cadena ASCII.

INT 21H Función 47H (Obtener directorio actual.)


Llamada:
AH = 47H
DL = Código de la unidad (0 = unidad por defecto, actual;1 = A; 2 = B; etc.)
DS:SI = Segmento: Desplazamiento de un buffer de 64 bytes. Este buffer contendrá el
nombre del directorio, con toda la vía de acceso al mismo, en forma de cadena ASCII.
Devuelve:
Si se ejecutó correctamente: Flag de acarreo (Cf) = 0
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Esta función se abortará (indicándolo mediante Cf y AX) si el código de unidad no
es válido.

8
FUNCIONES DE MANEJO DE FICHEROS
INT 21H Función 3CH (Crear Fichero.)
Llamada:
AH = 3CH
CX = Atributos del fichero: 00H Fichero Normal. 01H Fichero de Sólo Lectura. 02H Fichero
Oculto. 03H Fichero de Sistema.
DS: DX = Segmento: Desplazamiento de una cadena ASCII con el nombre de fichero.
Devuelve:
Si se ejecutó correctamente: Flag de acarreo (Cf) = 0
AX = Handle o manejador de fichero.
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Si el fichero indicado mediante la cadena ASCII ya existía, entonces se vacía su
contenido, quedando con longitud 0. Si el fichero no existía, entonces se crea. En ambos
casos, el fichero se abre, y se devuelve un Handle ó manejador de fichero para los restantes
accesos a dicho fichero. Esta función se abortará (indicándolo mediante Cf y AX) si:
 La vía de acceso indicada en la cadena ASCII es errónea.
 Se va a crear el fichero en el directorio raíz y éste ya está lleno
El Handle es un número mediante el cual se referencia a un fichero dado. De esta forma es
más cómodo trabajar con ficheros. Para cada uno de los ficheros con que trabajemos,
tendremos un número (Handle) que lo representará.

INT 21H Función 3DH (Abrir Fichero.)


Llamada:
AH = 3DH
AL = Modo de acceso. Bits 0-2: Permiso de lectura/escritura.
000b Acceso de sólo lectura.
001b Acceso de sólo escritura.
010b Acceso de lectura/escritura.

9
Bit 3: 0b (Reservado).
Bits 4-6: Modo de compartición de Fichero
000b Sólo el programa actual puede acceder al archivo
001b Sólo el programa actual puede acceder al archivo.
010b Otro programa puede leer el archivo, pero no escribir en él.
011b Otro programa puede escribir en el archivo, pero no leerlo.
100b Otro programa puede leer y escribir en el archivo.
Bit 7: Bit de 'herencia' ó Handle-flag.
0b Si el handle se hereda por un programa hijo.
1b Si el handle no se hereda.
DS: DX = Segmento: Desplazamiento de una cadena ASCII con el nombre de fichero.
Devuelve:
Si se ejecutó correctamente Flag de acarreo (Cf) = 0
AX = Handle o manejador de fichero
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Mediante esta función se abre un fichero ya existente, y se devuelve un Handle para
acceder al fichero en lo sucesivo.

INT 21H Función 3EH (Cerrar Fichero.)


Llamada:
AH = 3EH
BX = Handle.
Devuelve:
Si se ejecutó correctamente:
Flag de acarreo (Cf) = 0
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Mediante esta función se cierra un fichero que estuviera abierto. Se utiliza el Handle
para indicar el fichero a cerrar. Tras cerrar el fichero, dicho Handle se libera para nuevos
ficheros. Se vuelvan al disco todos los buffers internos asociados al fichero.

10
INT 21H Función 3FH (Lectura de Fichero o dispositivo.)
Llamada:
AH = 3FH
BX = Handle.
CX = Número de bytes a leer.
DS: DX = Segmento: Desplazamiento del buffer donde se depositarán los caracteres leídos.
Devuelve:
Si se ejecutó correctamente: Flag de acarreo (Cf) = 0
AX = Bytes transferidos
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Dado un handle válido, se realiza una transferencia desde el fichero referenciado por
ese handle hacia el buffer de memoria especificado mediante DS: DX.
Se transferirán tantos caracteres como se especifique en CX. Acto seguido, se actualiza el
puntero de fichero hasta el carácter que sigue al bloque leído. Mediante esta función es
posible leer caracteres del teclado, usando el handle 0.

INT 21H Función 40H (Escritura en Fichero o dispositivo.)


Llamada:
AH = 40H
BX = Handle.
CX = Número de bytes a escribir.
DS: DX = Segmento: Desplazamiento del buffer desde donde se van a tomar los caracteres
a escribir.
Devuelve:
Si se ejecutó correctamente: Flag de acarreo (Cf) = 0
AX = Bytes transferidos.
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error

11
Efecto: Dado un handle válido, se realiza una transferencia desde el buffer de memoria
indicado mediante DS: DX hacia el fichero o dispositivo referenciado por el Handle. Se
transferirán tantos caracteres como se especifique en CX. Acto seguido, se actualiza el
puntero de fichero una posición por delante del bloque escrito, para que futuras escrituras no
'machaquen' los datos que ya hubiera. Mediante esta función es posible escribir caracteres en
la pantalla, usando el handle 1.

INT 21H Función 41H (Borrar Fichero.)


Llamada:
AH = 41H
DS: DX = Segmento: Desplazamiento de la cadena ASCII con el nombre del fichero a borrar.
Devuelve:
Si se ejecutó correctamente: Flag de acarreo (Cf) = 0
Si NO se ejecutó correctamente: Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Se borra el fichero indicado mediante la cadena ASCII

INT 21H Función 42H (Establecer puntero de fichero.)


Llamada:
AH = 42H
AL = Código de desplazamiento:
00h Desplazamiento desde el inicio del fichero.
01h Desplazamiento desde la posición actual del puntero.
02h Desplazamiento desde el final del fichero.
BX = Handle del fichero.
CX = Mitad más significativa del desplazamiento.
DX = Mitad menos significativa del desplazamiento.
Devuelve:
Si se ejecutó correctamente
Flag de acarreo (Cf) = 0
DX = Mitad más significativa del puntero actualizado.

12
AX = Mitad menos significativa del puntero actualizado.
Si NO se ejecutó correctamente
Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto:
Cambia el valor del puntero de fichero, permitiendo así un acceso aleatorio al fichero.
Podremos, mediante esta función, escribir y leer caracteres en cualquier posición del fichero,
sin pasar por las anteriores.

INT 21H Función 43H Subfunción 00h (Obtener atributos de fichero.)


Llamada:
AH = 43H
AL = 00h
DS: DX = Segmento: Desplazamiento de la cadena ASCIIZ con el nombre del fichero.
Devuelve:
Si se ejecutó correctamente:
Flag de acarreo (Cf) = 0
CX = Atributos del fichero
Si Bit 0 = 1, Fichero de sólo lectura.
Si Bit 1 = 1, Fichero oculto.
Si Bit 2 = 1, Fichero de sistema.
Si Bit 5 = 1, El archivo ha sido modificado desde el último backup.
Si NO se ejecutó correctamente:
Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Mediante esta función se obtiene información acerca de los atributos de un
determinado fichero, indicado mediante la cadena ASCII.

INT 21H Función 43H Subfunción 01h (Establecer atributos de fichero.)


Llamada:
AH = 43H

13
AL = 01h
CX = Nuevos atributos para fichero.
Si ponemos Bit 0 = 1, atributo de sólo lectura.
Si ponemos Bit 1 = 1, atributo de oculto.
Si ponemos Bit 2 = 1, atributo de sistema.
Debemos establecer Bit 3 = 0
Debemos establecer Bit 4 = 0.
Si ponemos Bit 5 = 1, indicará que el fichero ha sido modificado desde el último backup.
DS: DX = Segmento: Desplazamiento de la cadena ASCIIZ con el nombre del fichero.
Devuelve:
Si se ejecutó correctamente
Flag de acarreo (Cf) = 0
Si NO se ejecutó correctamente:
Flag de acarreo (Cf) = 1
AX = Código de error.
Efecto: Mediante esta función se establecen nuevos atributos a un fichero dado. Este fichero
se indica mediante la cadena ASCII.

INT 21H Función 56H (Renombrar Fichero o Mover Fichero.)


Llamada:
AH = 56H
DS: DX = Segmento: Desplazamiento de la cadena ASCII con el nombre actual del fichero.
ES: DI = Segmento: Desplazamiento de la cadena ASCII con el nuevo nombre para el
fichero.
Devuelve: Si se ejecutó correctamente:
Flag de acarreo (Cf) = 0
Si NO se ejecutó correctamente:
Flag de acarreo (Cf) = 1
AX = Código de error.

14
Efecto: Esta función permite cambiar el nombre a un fichero dado. También permite mover
el fichero a otro directorio dentro del mismo dispositivo. En el segundo caso, lo que debemos
hacer es cambiar el camino que nos lleva al fichero, en vez del nombre de fichero en sí.
Versión de ms-dos: 2.0 o superior.
Notas: Se producirá un error si:
 la cadena ASCII indicada es errónea.
 ya existe un fichero con el mismo nombre que el indicado.
 Se intenta mover el fichero a otro dispositivo o unidad.
 El fichero se mueve al directorio raíz, y éste está lleno.

FUNCIONES DE TERMINACIÓN DE PROCESOS


INT 21H Función 00H (Terminar ejecución del Programa.)
Llamada:
AH = 00H
CS = Dirección del segmento del PSP.
Devuelve: NADA
Efecto: Se finaliza la ejecución del programa en curso. Esto conlleva:
 Liberación de toda la memoria asignada al programa.
 Todos los buffers de fichero son vaciados.
 Se cierra cualquier fichero abierto por el programa.
 Se restauran los tres vectores de interrupción (INT 22H, INT 23H, INT 24H) cuyo
contenido original fue almacenado en la pila. Esta función está pensada para
programas COM, en los cuales, el PSP está en el mismo segmento que el código del
programa. En los programas EXE esto no sucede así, estando el PSP en diferente
segmento al código del programa, por tanto, no se debe llamar a esta función desde
un programa .EXE. En ambos casos (COM y EXE), es preferible utilizar la función
4CH, ya que devuelve un código de retorno el programa padre.

INT 21H Función 4CH (Terminación de Programa con Código de Retorno.)


Llamada:
AH = 4CH

15
AL = Código de retorno para el programa padre
Devuelve: NADA.
Efecto: Se finaliza la ejecución del programa en curso, y se devuelve un código de retorno
al programa padre. Mediante este código de retorno, se puede ofrecer información al
programa padre acerca de la ejecución del programa (si se ha producido error, etc.) La
terminación del programa conlleva:
 Liberación de toda la memoria asignada al programa.
 Todos los buffers de fichero son vaciados.
 Se cierra cualquier fichero abierto por el programa.
 Se restauran los tres vectores de interrupción (INT 22H, INT 23H, INT 24H) cuyo
contenido original fue almacenado en la pila.
 Este es el método idóneo de terminación de programas, ya que no necesita que el
registro CS tenga ningún contenido especial. Y aparte, devuelve información al
programa padre.

INT 21H Función 31H (Finalizar el Programa y Dejar Residente.)


Llamada:
AH = 31H
AL = Código de retorno para el programa padre.
DX = Cantidad de memoria a dejar residente (en párrafos).
Devuelve: NADA
Efecto: Se finaliza la ejecución del programa en curso, y se devuelve un código de retorno
al programa padre. Mediante este código de retorno, se puede ofrecer información al
programa padre acerca de la ejecución del programa (si se ha producido error, etc.) Además
de esto, y lo más importante: Se deja residente el programa o parte del mismo, de forma que
las siguientes ejecuciones de programas no lo 'machaquen'. La terminación del programa
conlleva:
 Liberación de toda la memoria asignada al programa.
 Todos los buffers de fichero son vaciados.
 Se cierra cualquier fichero abierto por el programa.

16
 Se restauran los tres vectores de interrupción (INT 22H, INT 23H, INT 24H) cuyo
contenido original fue almacenado en la pila.
Un párrafo equivale a 16 bytes. Por tanto, en DX habrá que indicar el número total de bytes
a dejar residentes dividido por 16. Esta función se utiliza en programación de utilidades
residentes (como SideKick o SanBit). Una vez que el programa queda residente en memoria,
la á activación del mismo se realiza de acuerdo a algún criterio del propio programa (como
la pulsación de una combinación de teclas). En este caso, el programa residente toma el
control y al acabar su tarea le devuelve el control al programa que se estuviera ejecutando
antes de la activación del residente.

CONCLUSIÓN

Sabemos que las interrupciones son habilidades de comunicación entre hardware y software
con el programa que se está desarrollando la cual le permiten ampliar su capacidad al manejar
hardware a través del sistema operativo o recibir datos o mensajes del sistema operativo,
avisar que el programa principal ha terminado, establecer la comunicación hacia algún
dispositivo de entrada o salida tales como la pantalla, el teclado, el mouse o una impresora.
Las interrupciones en un sistema embebido permiten además avisarle al programa principal
de eventos que estén sucediendo en el exterior, como el estado de la temperatura del sistema,
de la batería, incluso si una determinada terminal se encuentra en uno o en cero. Es muy
importante que un programa de cómputo posea la capacidad de interactuar con el usuario
final por lo menos a través de la pantalla y el teclado en el caso de una computadora personal.
En ensamblador utilizamos el servicio de interrupciones del sistema operativo para
comunicarnos con el hardware. Es así que podemos programar rutinas que muestren en
pantallas resultados o, incluso, gráficos que muestren al usuario diversas informaciones
útiles; también es posible hacer subrutinas para que se introduzcan datos como cadenas de
texto o valores numéricos e, incluso, comandos, a través del teclado y el ratón. Con las
interrupciones además podemos comunicarnos con otros dispositivos de hardware unidos a
la computadora, como las impresoras, escáners, puertos seriales y paralelos. Además, el
hardware de la computadora posee interrupciones de software propias definidas por un
número específico, por ejemplo, La interrupción 21h es muy importante porque entre todas
las funciones que posee incluye funciones de manejo del hardware, teclado, video, archivos,
17
terminación de programa, incluso la interpretación de comandos del sistema operativo sin
perjuicio de las interrupciones propias del hardware. Es decir, que hay dispositivos que
podemos controlar desde su propia interrupción o a través de las del sistema operativo.

BIBLIOGRAFIA

 Moisés Burgos (2002). Interrupciones y manejo de archivo.


Disponible en: http://members.tripod.com/~MoisesRBB/unidad6.htm

http://irlenys.tripod.com/microii/interr.htm

 http://www.15dejuniomnr.com.ar/blog/apunteca/Ciclo%20Superior/ECA/Digital%2
02/Teoria/Conceptos%20Basicos%20Sobre%20la%20Programacion%20en%20Ass
embler.pdf

 Lenguaje ensamblador para microcomputadoras IBM – J. Terry Godfrey – Ed.


Prentice Hall

18

También podría gustarte