Sie sind auf Seite 1von 6

PRCTICA 5 Interrupciones 1. TRABAJO PREVIO Qu es una interrupcin?. Realice una clasificacin de las interrupciones.

Prepare una tabla con las interrupciones y funciones del i8088. 2. OBJETIVOS Estudiar el funcionamiento de algunas interrupciones utilizadas en el lenguaje Asemmbler. 3. FUNDAMENTACIN TERICA Las interrupciones son mecanismos utilizados en los ordenadores por medio de los cuales es posible interrumpir la ejecucin de un programa para atender la llegada de unacontecimiento externo. As, pues, son seales que se le envan a la CPU para que suspenda la ejecucin de la instruccin en curso y atienda una peticin determinada. Hay cuatro tipo de interrupciones: Interrupciones hardware: Son las generadas por la circutera del ordenador en respuesta a algn evento como pulsar una tecla del teclado. Este tipo de interrupciones la maneja el controlador de interrupciones, que establece la prioridad antes de enviar la seal a la CPU. Interrupciones internas: Son las generadas por la propia CPU cuando se produce una situacin anormal, como por ejemplo, una divisin por cero. Interrupciones software: Son las generadas por el propio programa para invocar a ciertas rutinas almacenadas en memoria (ROM o RAM). Es posible cambiar estas rutinas. Las interrupciones se aprovechan tambin en la actualidad como funciones software: no son activadas por dispositivos externos al procesador, sino que lo son por los propios programas. Las interrupciones software pueden ser activadas internamente por la propia CPU cuando se producen situaciones especiales, como, por ejemplo, cuando se intenta hacer una divisin siendo el divisor igual a cero. Esto ahorra el tiempo que, en otro caso, deberan dedicar los programas a la comprobacin previa de los divisores. Interrupciones no enmascarables: Se usan para pedir la atencin inmediata de la CPU en situaciones de emergencia, como cada de voltaje o error de paridad de memoria. Cada interrupcin lleva asociado un nmero que identifica el tipo de servicio que debe realizar. A partir del nmero de interrupcin, calcula la direccin de la rutina que realiza el servicio requerido, la ejecuta y retorna a la instruccin siguiente a la ltima que ejecut antes de que se produjera la interrupcin. El mecanismo de la interrupcin es simple: en un momento determinado se activa la entrada de la interrupcin al procesador. El procesador suspende entonces la ejecucin del programa en curso, pasando el control al programa de interrupcin. Este programa tratar la causa de la interrupcin, desactivar el dispositivo que la ha producido y devolver el control al programa principal. El programa principal es transparente a este proceso y no tiene ninguna indicacin de que se ha producido, salvo, por supuesto, por el tiempo de proceso transcurrido.

Una funcin que ejecutan todas las interrupciones al activarse el programa de interrupcin es salvar los registros del procesador para evitar que sean modificados y alteren el funcionamiento del programa suspendido. Estos registros se restauran justo antes de volver al programa principal. ste tiene, sin embargo, la posibilidad de bloquear las interrupciones mediante instrucciones que activan o desactivan una bandera de interrupcin (bandera IF). Tal posibilidad es necesaria cuando el programa principal accede a datos o perifricos que son tambin utilizados por las interrupciones, pues se pueden producir situaciones errneas cuando los dos (proceso e interrupcin) intenten utilizar los mismos recursos simultneamente. La mayora de los procesadores disponen de una entrada especial de interrupcin que no puede ser impedida por software: se trata de la NMI (non maskable interrupt). Esta entrada es necesaria para aplicaciones de alta prioridad y urgencia (como es el caso de un fallo en la alimentacin) en los que el procesador tiene escaso tiempo para detener los procesos y salvar los datos vitales de la mquina. Interrupcin 21H (Interrupcin del DOS) Propsito: Llamar a diversas funciones del DOS. Sintaxis: Int 21H Nota: Cuando trabajamos en MASM es necesario especificar que el valor que estamos utilizando es hexadecimal. Esta interrupcin tiene varias funciones, para accesar a cada una de ellas es necesario que el el registro AH se encuentre el nmero de funcin que se requiera al momento de llamar a la interrupcin. Funciones para desplegar informacin al video. 02H Exhibe salida 09H Impresin de cadena (video) 40H Escritura en dispositivo/Archivo Funciones para leer informacin del teclado. 01H Entrada desde teclado 0AH Entrada desde teclado usando buffer 3FH Lectura desde dispositivo/archivo Funcin 02H Uso: Despliega un caracter a la pantalla. Registros de llamada: AH = 02H DL = Valor del caracter a desplegar. Registros de retorno: Ninguno Esta funcin nos despliega el caracter cuyo codigo hexagesimal corresponde al valor almacenado en el registro DL, no se modifica ningn registro al utilizar este comando. Es recomendado el uso de la funcin 40H de la misma interrupcin en lugar de esta funcin. Interrupcin 10H (Interrupcin del BIOS) Propsito: Llamar a diversas funciones de video del BIOS.

Sintaxis: INT 10H Esta interrupcin tiene diversas funciones, todas ellas nos sirven para controlar la entrada y salida de video, la forma de acceso a cada una de las opciones es por medio del registro AH. Funciones comunes de la interrupcin 10H. 02H Seleccin de posicin del cursor 09H Escribe atributo y caracter en el cursor 0AH Escribe caracter en la posicin del cursor 0EH Escritura de caracteres en modo alfanumrico Interrupcin 16H (Interrupcin del BIOS) Propsito: Manejar la entrada/salida del teclado. Sintaxis: Int 16H Veremos dos opciones de la interrupcin 16H, estas opciones, al igual que las de otras interrupciones, son llamadas utilizando el registro AH. Funciones de la interrupcin 16H 00H Lee un caracter de teclado 01H Lee estado del teclado 4. INFORME Se entregarn al finalizar la prctica los cdigos fuente de los programas diseados y las respuestas a las cuestiones formuladas en el enunciado. 5. PROCEDIMIENTO a. Obtener el nmero de versin del DOS (Funcin 30H) La instruccin que entrega el nmero de versin es INT 21h del DOS, funcin 30h; esto es, cargue 30h en el registro AH y solicite INT 21h. Ingrese al DEBUG - Ingrese el comando A 100 (de DEBUG ) - Ingrese las instrucciones en ensamblador: - MOV AH,30 - INT 21H - NOP (seguido por un [enter] adicional ) Para rastrear la ejecucin de las instrucciones, primero ingrese R para ver los registros y T para rastrear MOV. En lugar de rastrear la instruccin INT, ingrese P (proced, proceder) para ejecutar toda la rutina del DOS. El proceso termina con la instruccin NOP.

Ahora puede ver en AL el nmero principal de la versin del DOS, como X en DOS X.50, y en AH el nmero secundario de la versin, como 14H(o 20) en DOS X.50. Escriba la versin del MS DOS Presione Q para salir. b. Obtener la fecha actual ( INT 21h, funcin 2Ah) El valor de la funcin debe ser asignado a: AH. Escriba el programa en el DEBUG. No se olvide de poner ENTER al final de cada instruccin. - A 100 - MOV AH,2A - INT 21 - NOP Ingrese R para mostrar los registros, T para ejecutar MOV, y P(proced) para INT, la opearcin se detiene en NOP. Los registros muestran esta informacin: - AL : Da de la semana(0=Domingo) - CX : Ao(en hexadecimal, por ejemplo, 07DH = 1997) - DH : Mes (01 a 12) - DL : Da del mes (01 a 31) Presione Q, para salir. c. Escriba el programa LEE.ASM: ORG 100H .MODEL SMALL .STACK 100H .DATA SINTECLA DB CONTECLA DB .CODE INICIO: MOV AX, @DATA MOV DS, AX MOV AH, 1 INT 16H JNZ HAYTECLA MOV AH, 2CH INT 21H MOV BL, DH ESPERA: MOV AH, 1 INT 16H JNZ HAYTECLA MOV AH, 2CH INT 21H

"No se ha pulsado ninguna tecla",10,13,'$' "Se ha pulsado la tecla $"

CMP BL, DH JE ESPERA MOV BL, DH LEA DX, SINTECLA MOV AH, 9 INT 21H JMP ESPERA HAYTECLA: MOV BL, AL LEA DX, CONTECLA MOV AH, 9 INT 21H MOV AH, 2 MOV DL, BL INT 21H MOV AH, 4CH INT 21H END INICIO Compile el programa utilizando TASM Ejecute el mismo. Cul es el resultado? Identifique qu interrupciones y funciones utiliza el programa? d. Escriba el programa INT10.ASM: ORG 100H .MODEL SMALL .STACK 100H .DATA FILASUP DB 12 COLSUP DB 37 FILAINF DB 13 COLINF DB 42 .CODE INICIO: MOV AX, @DATA MOV DS, AX MOV AH,6 MOV AL,0 MOV BH,40H MOV CH, FILASUP MOV DH, FILAINF MOV CL, COLSUP MOV DL, COLINF INT 10H

MOV AH, 4CH INT 21H END INICIO Compile el programa utilizando TASM Ejecute el mismo. Cul es el resultado? Cul es la funcin de INT10H? 6. PREGUNTAS MOV AH,4CH?. Es solo una instruccin para trasladar el dato 4C, al registro AH. Explique. Para qu sirve la instruccin INT 10H. Cul funcin se utiliza para manejar video y con qu interrupcin se usa?. De las interrupciones estudiadas clasifique cules son de DOS y del BIOS. 8. FINAL DE LA PRCTICA Una vez finalizada la prctica, cierre su sesin. El informe de la prctica ha de contener los listados de los programas realizados y las respuestas razonadas a las preguntas formuladas a lo largo de la prctica.

Preparado por: Sixto Reinoso V

Das könnte Ihnen auch gefallen