Lenguaje Ensamblador Tercera Parte Unidad i

2
Lenguaje Ensamblador Ing. Leonardo Ramírez L. 1 1.3.- INTERRUPCIONES. Una interrupción es una operación que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción especial. La rutina de interrupción ejecuta y por lo regular regresa el control al procedimiento que fue interrumpido, el cual entonces reasume su ejecución. 1.3.1.- HARDWARE. Las interrupciones hardware ocurren cuando un dispositivo necesita atención del procesador y genera una señal eléctrica en la línea IRQ que tiene asignada. Esta señal es recogida y procesada por el controlador de excepciones PIC antes de ser enviada al procesador, lo que puede realizarse de dos formas, según el tipo de interrupción sea enmascarable o no enmascarable. Cuando se habla de una significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar) la señal de interrupción. Para ello se envía una señal a la patilla INTR, y el procesador la atiende o la ignora en función del contenido de un bit (IF) en un registro (FLAGS) que puede estar habilitado o deshabilitado. En el primer caso, cuando se recibe la señal, el procesador concluye la instrucción que estuviese en proceso y a continuación responde con una combinación de señales en algunas de sus patillas componiendo una sucesión de dos señales INTA ("Interrupt Acknowledge". La primera señal es simplemente un aviso; la segunda es una petición para que el PIC coloque en el bus de datos un Byte con el número de interrupción, de forma que el procesador pueda localizar el servicio solicitado. El valor recibido (0-255) es multiplicado por 4 para calcular la dirección del vector correspondiente en la tabla de vectores de interrupción, lo que se realiza mediante un desplazamiento binario de dos posiciones a la izquierda. Interrupción no enmascarable significa que la interrupción no puede ser deshabilitada por software. Este tipo de interrupciones ocurren cuando se recibe una señal en la patilla NMI ("Nonmaskable Interrupt") del procesador. Se reservan para casos en que es crítica la respuesta, por ejemplo que se detecte un error de paridad en la memoria. Además son de prioridad más alta que las enmascarables. 1.3.2- SOFTWARE. Los procesadores Intel de la gama x86 y compatibles, disponen de una instrucción INT que permite generar por software cualquiera de los 256 tipos de interrupción anteriormente descritos. El proceso seguido es exactamente el mismo que si se recibe una interrupción hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupción, y no se requiere ningún ciclo INTA. Este tipo de interrupciones son de prioridad más alta que las de hardware (enmascarables y no enmascarables), de forma que si se recibe una interrupción hardware mientras que se ejecuta una software, esta última tiene prioridad. FUNCIONES DE LA BIOS. Las funciones de la BIOS se invocan, desde los programas de usuario, ejecutando una interrupción software con un cierto valor inicial en los registros. La BIOS emplea un cierto rango de interrupciones, cada una encargada de una tarea específica: INT 10h: Servicios de Vídeo (texto y gráficos). INT 11h: Informe sobre la configuración del equipo. INT 12h: Informe sobre el tamaño de la memoria convencional. INT 13h: Servicios de disco (muy elementales: pistas, sectores, etc.). INT 14h: Comunicaciones en serie. INT 15h: Funciones casette (PC) y servicios especiales del sistema (AT).

description

Interrupciones Hardware y Software

Transcript of Lenguaje Ensamblador Tercera Parte Unidad i

Page 1: Lenguaje Ensamblador Tercera Parte Unidad i

Lenguaje Ensamblador – Ing. Leonardo Ramírez L.

1

1.3.- INTERRUPCIONES.

Una interrupción es una operación que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción especial. La rutina de interrupción ejecuta y por lo regular regresa el control al procedimiento que fue interrumpido, el cual entonces reasume su ejecución.

1.3.1.- HARDWARE.

Las interrupciones hardware ocurren cuando un dispositivo necesita atención del procesador y genera una señal eléctrica en la línea IRQ que tiene asignada. Esta señal es recogida y procesada por el controlador de excepciones PIC antes de ser enviada al procesador, lo que puede realizarse de dos formas, según el tipo de interrupción sea enmascarable o no enmascarable. Cuando se habla de una significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar) la señal de interrupción. Para ello se envía una señal a la patilla INTR, y el procesador la atiende o la ignora en función del contenido de un bit (IF) en un registro (FLAGS) que puede estar habilitado o deshabilitado. En el primer caso, cuando se recibe la señal, el procesador concluye la instrucción que estuviese en proceso y a continuación responde con una combinación de señales en algunas de sus patillas componiendo una sucesión de dos señales INTA ("Interrupt Acknowledge". La primera señal es simplemente un aviso; la segunda es una petición para que el PIC coloque en el bus de datos un Byte con el número de interrupción, de forma que el procesador pueda localizar el servicio solicitado. El valor recibido (0-255) es multiplicado por 4 para calcular la dirección del vector correspondiente en la tabla de vectores de interrupción, lo que se realiza mediante un desplazamiento binario de dos posiciones a la izquierda. Interrupción no enmascarable significa que la interrupción no puede ser deshabilitada por software. Este tipo de interrupciones ocurren cuando se recibe una señal en la patilla NMI ("Nonmaskable Interrupt") del procesador. Se reservan para casos en que es crítica la respuesta, por ejemplo que se detecte un error de paridad en la memoria. Además son de prioridad más alta que las enmascarables.

1.3.2- SOFTWARE. Los procesadores Intel de la gama x86 y compatibles, disponen de una instrucción INT que permite generar por software cualquiera de los 256 tipos de interrupción anteriormente descritos. El proceso seguido es exactamente el mismo que si se recibe una interrupción hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupción, y no se requiere ningún ciclo INTA. Este tipo de interrupciones son de prioridad más alta que las de hardware (enmascarables y no enmascarables), de forma que si se recibe una interrupción hardware mientras que se ejecuta una software, esta última tiene prioridad.

FUNCIONES DE LA BIOS.

Las funciones de la BIOS se invocan, desde los programas de usuario, ejecutando una interrupción software con un cierto valor inicial en los registros. La BIOS emplea un cierto rango de interrupciones, cada una encargada de una tarea específica:

INT 10h: Servicios de Vídeo (texto y gráficos). INT 11h: Informe sobre la configuración del equipo. INT 12h: Informe sobre el tamaño de la memoria convencional. INT 13h: Servicios de disco (muy elementales: pistas, sectores, etc.). INT 14h: Comunicaciones en serie. INT 15h: Funciones casette (PC) y servicios especiales del sistema (AT).

Page 2: Lenguaje Ensamblador Tercera Parte Unidad i

Lenguaje Ensamblador – Ing. Leonardo Ramírez L.

2

INT 16h: Servicios de teclado. INT 17h: Servicios de impresora. INT 18h: Llamar a la ROM del BASIC (sólo máquinas IBM). INT 19h: Reinicialización del sistema. INT 1Ah: Servicios horarios. INT 1Fh: Apunta a la tabla de los caracteres ASCII 128-255 (8x8 puntos).

FUNCIONES DEL DOS.

El DOS emplea varias interrupciones, al igual que la BIOS; sin embargo, cuando se habla de funciones del DOS, todo el mundo sobreentiende que se trata de llamar a la INT 21h, la interrupción más importante con diferencia.

INT 20h: Terminar programa (tal vez en desuso). INT 21h: Servicios del DOS. INT 22h: Control de finalización de programas. INT 23h: Tratamiento de Ctrl-C. INT 24h: Tratamiento de errores críticos. INT 25h: Lectura absoluta de disco (sectores lógicos). INT 26h: Escritura absoluta en disco (sectores lógicos). INT 27h: Terminar dejando residente el programa (en desuso). INT 28h: Idle (ejecutada cuando el ordenador está inactivo). INT 29h: Impresión rápida en pantalla (no tanto). INT 2Ah: Red local MS NET. INT 2Bh-2Dh: Uso interno del DOS. INT 2Eh: Procesos Batch. INT 2Fh: Interrupción Multiplex. INT 30h-31h: Compatibilidad CP/M-80. INT 32h: Reservada.