Sunteți pe pagina 1din 14

1.

4 El concepto de interrupciones
Diego Salvador Surez Quijas
Balder Rico Santiago
Milton Alexis Durn Moreno
Luis Eduardo Hernndez Magaa
Concepto

Es una operacin que suspende la ejecucin de un programa de modo que


el sistema pueda realizar una accin en especial. La rutina de interrupcin
ejecuta y por lo regular regresa el control al procedimiento que fue
interrumpido, el cual entonces reasume su ejecucin.
Tabla de interrupciones.

Cuando la computadora se enciende, el BIOS y el DOS establecen una tabla de


servicios de interrupcin en la localidades de memoria 000H-3FFH. La tabla
permite el uso de 250 (100H) interrupciones, cada una con una desplazamiento:
segmento relativo de cuatro bytes.
Tipos de Interrupciones.

Externas Es provocada por un dispositivo externo al procesador.


EJEMPLO:
INTERRUPCIN NO ENMASCARABLE Y PETICIN DE INTERRUPCIN.
- Reporta la memoria y errores de E/S.
- Reporta peticiones desde los dispositivos externos 05H a la 0FH.
Internas Ocurre como resultado de la ejecucin de una instruccin INT o una operacin de
divisin que cause desbordamiento.
EJEMPLO:
PROGRAMAS.
Interrupcin de BIOS.

El BIOS contiene un extenso conjunto de rutinas de E/S y las tablas que


indican el estado de los dispositivos del sistema.
El mtodo para realizar la interfaz con el BIOS es el de interrupcin de
software.

INT 00H 13H


(Divisin entre 0)
Interrupcin del DOS

Facilitan el uso del BIOS, ya que proporcionan muchas de las pruebas


adicionales.
IO.SYS Interfaz de nivel bajo con el BIOS que facilita la lectura de datos.
MSDOS.SYS contiene un administrador de archivos y proporciona varios
servicios.
Interrupciones de hardware
Las interrupciones de hardware son aquellas interrupciones que se producen como resultado de, por
lo general, una operacin de E/S. No son producidas por ninguna instruccin de un programa sino
por las seales que emiten los dispositivos perifricos para indicarle al procesador que necesitan ser
atendidos.

Existen dos clases de interrupciones de este tipo:


Interrupciones por hardware enmascarables: Aquellas en las que el usuario decide si quiere o
no ser interrumpido.
Interrupciones por hardware no enmascarables (NMI): Aquellas que siempre interrumpen al
programa.
IRQ: Interrupt Request (Pedido de Interrupcin)
Un IRQ es una seal de un dispositivo de hardware (por ej. el teclado o tarjeta de sonido) indicando
que el dispositivo necesita que la CPU haga algo. La seal del pedido de interrupcin va a travs
de las lneas IRQ a un controlador que asigna prioridades a los pedidos IRQ y se los entrega a la CPU.

Adems, se tienen 8 lneas que reciben las interrupciones enmascarables, asociada a stas lneas se
tiene una bandera IF (Interrupt Flag) para determinar si se acepta o no las interrupciones.
Si IF = 1 entonces IRQs estn habilitadas
Si IF = 0 entonces IRQs deshabilitadas

Son 16 IRQS que van del 0 al 15 los que muestran a continuacin.


Las 8 lneas de IRQ llegan directamente al CPU, antes son detenidas por un circuito llamado el
control de interrupciones. La funcin de este circuito es determinar cual de las 8 lneas puede
entrar a interrumpir al CPU en caso de provocarse dos o ms interrupciones a la vez. Esta
determinacin se lleva a cabo en base en dos cosas:
Prioridad: Las IRQ estn numeradas:
IRQ 0
IRQ 1
...
IRQ7
Habilitacin en el registro de mscaras: El controlador de interrupciones contiene un registro
de mscaras de 8 bits en el que cada bit representa una mscara para una lnea IRQ.
Reg. Mscaras 7 6 5 4 3 2 1 0
IRQ 0
IRQ 1
...
IRQ 7
Si bit i = 0 entonces IRQ i esta habilitada.
Si bit i = 1 entonces IRQ i esta deshabilitada.
Por lo tanto las IRQ pueden ser habilitadas por grupo mediante la IF o individualmente por
medio del registro de mscaras.
El nivel 0 tiene la prioridad ms alta,
y el nivel 15 la ms baja.

Una interrupcin de un nivel


ms bajo no puede interrumpir a una
de un nivel ms alto que se encuentre
en progreso.

Por ejemplo: si el puerto


de comunicaciones 1 (COM1) tratara
de interrumpir el manejador de
interrupciones del teclado, tendra
que esperar
hasta que este ltimo terminara.
Interrupcin de software

Las interrupciones de software son eventos sncronos que son provocados por el
programa en ejecucin usando una funcin especial del lenguaje, esto puede ocurrir
al llamar a la instruccin INT, al realizar una divisin por 0 o realizar una peticin de
una interrupcin externa.
Las interrupciones por software se ejecutan con ayuda de las instrucciones: INT e IRET,
adems se tiene 256 interrupciones: de la 00 a la FF. Asociado al concepto de interrupcin
se tiene un rea de memoria llamada vector de interrupciones; la cual contiene las
direcciones de las rutinas de servicio de cada interrupcin. Esta rea se encuentra en el
segmento 0000:0000. Para cada una de las direcciones se utilizan 4 bytes, dos bytes para
el segmento y 2 para el desplazamiento.
El uso de las interrupciones nos ayuda en la creacin de programas, utilizndolas
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 categoras: 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 nicamente de
las caractersticas que le quiera dar a su programa: velocidad
(utilizando las del BIOS) o portabilidad (utilizando las del DOS).
Referencias.
Lenguaje Ensamblador y programacin para PC IBM y compatibles.

Lenguaje de Interfaz. (14 de Mayo de 1991). Obtenido de


http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20I.com

Lenguaje ensamblador para computadoras basadas en Intel.


Autor: KIP R. IRVINE, Quinta Edicin.

http://leo-yac.wixsite.com/lenguaje-ensamblador/el-concepto-de-interrupciones
http://lenguajesdeinterfaztec.blogspot.mx/
https://es.scribd.com/document/271378541/1-4-El-Concepto-de-Interrupciones

http://arqordenadores.wikisite.com/index.php/Interrupciones_(hardware_y_software)

http://logica-reptilia.blogspot.mx/2009/03/interrupciones.html

S-ar putea să vă placă și