Hablando de Interrupciones
Interrupción enmascarable 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.
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.
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 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.
Nota: La única forma de enmascarar estas interrupciones es a través de circuitos externos al procesador, por ejemplo a nivel del PIC.
Cuando el procesador recibe una de estas instrucciones no se genera ningún ciclo de reconocimiento de la instrucción (INTA), y el procesador le asigna un 2 como número de excepción.
Referencia:
http://zator.com/Hardware/H2_4.htm
INT 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.
Referencia:
http://ict.udlap.mx/people/oleg/docencia/ASSEMBLER/asm_interrup_21.html
PRINCIPALES FUNCIONES
OPCIONES DE INT 21H (LLAMADAS A FUNCIONES DE DOS) | |||
AH | Propósito | Tipo | Descripción. |
0 | Terminación del programa | Control | Termina la ejecución de un programa. |
1 | Entrada desde el teclado | Teclado | Espera entrada proveniente del teclado, la exhibe y la coloca en el registro AL. |
2 | Exhibe salida | Display | Exhibe el carácter en DL. |
3 | Entrada auxiliar | Diversos | Espera un carácter proveniente del puerto COM y lo coloca en AL. |
4 | Salida auxiliar | Diversos | Envía puerto COM al carácter en DL |
5 | Salida a impresora | Impresora | Envía a la impresora el carácter en DL. |
6 | I/O directo de consola | Teclado | Espera hasta recibir un carácter proveniente del teclado (no verifica ctrl.-Break). |
7 | Entrada de consola directa con eco desactivado | Teclado | Espera hasta recibir un carácter desde del teclado y lo coloca en AL. |
8 | Entrada desde la consola | Teclado | Espera hasta recibir un carácter desde el teclado, entrega en Al y se ejecuta una interrupción Ctrl.- Break. |
9 | Impresión en cadena | Display | Presenta una cadena de caracteres en la pantalla. La cadena debe finalizar en $, apuntando DS:DX. |
A | Entrada desde el teclado a través del buffer | Teclado | Lee los caracteres que provienen del teclado en un buffer. DS:DX apunta al buffer. El primer byte es el numero máximo de caracteres mientras que el segundo byte indica el numero de caracteres leídos. |
B | Verifica el estado de entrada normal | Teclado | Verifica si existe un carácter disponible proveniente del teclado. (AL=0 NO ,AL=0FFH SI) |
D | Restablece el disco | Disco | Se pierden todos los archivos que no han sido cerrados. |
E | Selección del disco | Disco | Selecciona la unidad del disco en DL (0 =A, 1 = B, etc. |
F | Abre archivo | Archivo | Busca el directorio para apuntar el archivo que entra en DS:DX. AL = FFH (no se encuentra) o AL = 00H (encontrado). Si se encuentra se llena FCB. |
10 | Cierra archivo | Archivo | Cierra el archivo después de una operación de escritura. DS:DX apunta a FCB. |
11 | Búsqueda para la primera | Disco | Busca en el directorio la primera ocurrencia en que igual el nombre del archivo. Si no se encuentra AL = FFH. |
12 | Búsqueda para la siguiente entrada | Disco | Después de haber encontrado el nombre del archivo, esta llamada continuara la búsqueda para la siguiente ocurrencia. |
13 | Borrar archivo | Archivo | Borra del directorio todas las entradas que señala el apuntador DS:DX. |
Referencia:
EJEMPLOS
INT 21H Función 01H
Entrada de Carácter con Eco (ó 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.
DEVUELVE:
NADA.
Efecto: Se envía el carácter depositado en el registro DL al dispositivo estándar de salida. La salida puede ser redireccionada hacia un fichero, impresora, etc.
En el link de abajo podran encontrar mas ejemplos.
http://ict.udlap.mx/people/oleg/docencia/ASSEMBLER/asm_interrup_21.html
0 Response to "Hablando de Interrupciones"
Publicar un comentario