Masterización

Solo disponible en BuenasTareas
  • Páginas : 3 (620 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de mayo de 2011
Leer documento completo
Vista previa del texto
Programación en Ensamblador
Carlos F. Jiménez P. carlosfjimenezp@yahoo.com.mx Cali Julio 14 de 2005
;La Interrupcion

Ejemplo del uso interrupciones

; La interrupción es un mecanismo medianteel cual se interrumpe el flujo secuencial de un programa para entrar a una ; rutina de atención de interrupción, la interrupción se origina por una señal del hardware con la cual se solicita al ;Procesador atención a un evento que normalmente algo infrecuente. ; En el PC existen múltiples fuentes de interrupción por ejemplo el temporizador 8253 genera interrupciones periódicas, la ; Tarjeta desonido y el puerto paralelo en modo EPP y ECP también son fuente de interrupciones ; Para utilizar una interrupción en ensamblador son los siguientes: Se escribe la rutina o sub programa que seejecutara ; Para atender la interrupción a continuación se asigna el vector de interrupción correspondiente al esta rutina mediante la ; Función 25 de la INT 21h. ; Es importante tener en cuenta que elsistema operativo puede tener ya asignadas las interrupciones a otras funciones por ; Lo tanto es importante hacer una copia del offset de la rutina de atención antes de sobrescribirla con la nuestra y al ;finalizar el programa restaurar el vector original. ; A continuación se presenta un ejemplo de la captura del vector de interrupción 08 el cual corresponde al temporizador ; Programable 8253 del pc.;Comenzamos por definir el segmento de pila o stack reservando para este 256 bytes. STACK SEGMENT PARA STACK 'STACK' DB 256 DUP(0) STACK ENDS ASSUME CS:COD , DS:DATA ; Se difine el segmento de datos ydeclaramos algunas variables DATA SEGMENT ; Registros para guardar la dirección del vector actual al cual se encuentra asignada al int 08 VECCS DW ? ; Segmento en el cual se aloja la rutina actual deatención VECIP DW ? ; Offest de la rutina actual de atención. ;Otras variables NUMERO DB ? CONTEO DB ? CERO DB 0 ;Mensajes POR DB 'Detector de interrupción 08.','$' POR2 DB 'Carlos Fernando...