AYUDANTIA Nº 2 INTERRUPCIONES

Anuncio
AYUDANTIA Nº 2
INTERRUPCIONES
Ayudante: Viviana Muñoz
Arquitectura de Computadores II
INTERRUPCIÓN:
„
Una interrupción es un suceso, más o menos
inesperado, que se produce bien como
consecuencia de un evento externo de la CPU
(por los dispositivos E/S), o bien por la propia
CPU como consecuencia de la ejecución o
intento de ejecución de una instrucción. Por
cualquiera de estos motivos una interrupción
debe entenderse como un suceso que se
produce inesperadamente, pero que hay que
tratarlo inmediatamente.
TIPOS DE INTERRUPCIONES
Las interrupciones implican una ruptura en la secuencia del programa
saltando al código que da ese servicio y cuando se ha terminado, se
vuelve a la ejecución del programa en curso Pueden ser:
„ – Interrupciones hardware: son generadas por los circuitos
asociados al microprocesador en respuesta a algún evento como
pulsar una tecla del teclado
„ – Interrupciones software: son generadas por un programa para
llamar a ciertas subrutinas almacenadas en memoria ROM o RAM
Es posible cambiarlas y crear otras nuevas. Los pasos para llamar a una
interrupción son: identificar la interrupción
necesaria, pasar los parámetros a la subrutina, llamar a la interrupción Las
interrupciones salvaguardan los flags y los registros que emplean
1
Cuando se produce una interrupción, lo normal es:
„
„
„
„
Abandonar el flujo secuencial de ejecución actual.
Dar control a una Rutina de Tratamiento de la
Interrupción.
Ejecutar la RTI .
Reanudar el flujo normal de ejecución en el punto
donde se interrumpió.
Como existen distintos motivos para generar una interrupción, debe existir una
rutina de tratamiento para cada tipo o motivo de interrupción posible.
INTERRUPCIONES INTERNAS
SE PUEDEN PRODUCIR POR 2 MOTIVOS
1. En la ejecución de una instrucción se detecta alguna anomalía
Como por ejemplo, que el código de operación es desconocido, que se intenta
dividir por cero, o que se ha realizado una operación aritmética que ha
producido un overflow.
2.
Interrupciones Simuladas o Interrupciones de Software
Son generadas por instrucciones del lenguaje máquina incluidas en el código
de un programa, cuyo cometido es única y simplemente provocar una
interrupción. Cuando se ejecuta una de estas instrucciones de interrupción
Software, el tratamiento es el mismo que si se hubiera generado por un
dispositivo externo, cambia la rutina eso si.
Llamada a una interrupción dentro
del código de Lenguaje Máquina
Fases que efectúa:
„
Se genera una interrupción por software.
Esto nos permitirá usar unas determinadas
funciónes o rutinas del BIOS y del DOS.
Su forma de trabajar es muy semejante a la
llamada a una subrutina.
INT tipo_int
„
„
„
„
„
„
Apila los flags.
IF=0 y TF=0, inhibe las interrupciones.
Apila la dirección de retorno.
Accede a la tabla de interrupciones según el
tipo de interrupción
Desapila la dirección de retorno.
Devuelve al control al programa.
2
Veremos 4 servicios de la interrupción 21h.
Servicio 01. Lee un carácter introducido por teclado introduciendo su
código ASCII en el registro AL.
MOV AH,01
INT 21H
Servicio 07. Hace lo mismo que el servicio 01 pero este carácter no
aparece por pantalla.
MOV AH,07
INT 21H
Servicio 02. Muestra un carácter por pantalla. Para ello debemos introducir
en un registro de datos como puede ser DL, el código ASCII de dicho
carácter.
MOV AH,02
MOV DL,41H
INT 21H
Servicio 09. Escribe una cadena de caracteres por pantalla. Esta cadena
de caracteres ha de definirse en el segmento de datos en una variable.
MOV AH,09
MOV DX,OFFSET VAR1
INT 21H
EJEMPLOS:
„
„
„
„
„
„
„
„
„
„
„
„
„
„
„
„
„
„
Programa que presenta en pantalla la letra “A”.
Push ds
mov ax,0
push ax
mov ah, 2
mov dl, 65
int 21h
ret
Programa que lee una tecla pulsada y la muestra en pantalla.
PUSH DS
MOV AX,0
PUSH AX
MOV AH,07
INT 21H
MOV DL,AL
MOV AH,02
INT 21H
RET
Correo
„
„
[email protected]
Tarea Nº 1
3
Descargar