P. 1
INT DOS Y BIOS

INT DOS Y BIOS

5.0

|Views: 2.582|Likes:
Publicado porDRYKKON
ES UNA PRESENTACION SOBRE INTERRUPCIONE BIOS Y DOS EN LA PROGRAMACION A NIVEL MAQUINA
ES UNA PRESENTACION SOBRE INTERRUPCIONE BIOS Y DOS EN LA PROGRAMACION A NIVEL MAQUINA

More info:

Published by: DRYKKON on Mar 25, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPTX, PDF, TXT or read online from Scribd
See more
See less

07/17/2013

pdf

text

original

INTERRUPCIONES DEL BIOS Y DOS

REGISTROS USO DEL RATÓN

USO DE LOS SERVICIOS DEL BIOS CON INTERRUPCIONES

USO DE LOS SERVICIOS DEL DOS CON INTERRUPCIONES

REGISTROS
CONCEPTO BÁSICO REGISTROS DE LA CPU La familia de procesadores 8086 tiene 14 registros en los que se pone la información para procesar el programa de control. Los registros de los procesadores se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética.

REGISTROS
Los registros son espacios físicos dentro del microprocesador con capacidad de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee. Los registros son direccionables por medio de una viñeta, que es una dirección de memoria. Los bits, por conveniencia, se numeran de derecha a izquierda (15, 14,13…. 3, 2, 1,0), los registros están divididos en seis grupos los cuales tienen un fin especifico.

REGISTROS
Los registros se dividen en: Registros de segmento Registros de apuntadores de instrucciones Registros apuntadores Registros de propósitos generales Registro índice Registro de bandera.
Los bits por convención, se numeran de derecha a izquierda, como en: ... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

REGISTROS

REGISTROS

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 resume su ejecución. Una interrupción es un tipo especial de instrucción que provoca la parada de la ejecución del programa, guarda el estado actual del sistema en la pila y salta a una rutina de manejo de la interrupción que se determina por el número de la interrupción.

interrupciones
Cuando la computadora se enciende, el BIOS y el DOS establecen una tabla de servicios de interrupción en las localidades de memoria 000H-3FFH. La tabla permite el uso de 256 (100H) interrupciones, cada una con un desplazamiento: segmento relativo de cuatro bytes en la forma IP: CS.

interrupciones
El operando de una instrucción de interrupción como INT 05H identifica el tipo de solicitud. Como existen 256 entradas, cada una de cuatro bytes, la tabla ocupa los primeros 1, 024 bytes de memoria, desde 000H hasta 3FFH. Cada dirección en la tabla relaciona a una ruina de BIOS o del DOS para un tipo específico de interrupción. Por lo tanto los bytes 0-3 contienen la dirección para la interrupción 0, los bytes 4-7 para la interrupción 1, y así sucesivamente.

interrupciones
TIPOS DE INTERRUPCIONES Las interrupciones se dividen en dos tipos las cuales son: Externas y Internas. Una interrupción externa es provocada por un dispositivo externo al procesador. Las dos líneas que pueden señalar interrupciones externas son la línea de interrupción no enmascarable (NMI) y la línea de petición de interrupción (INTR). La línea NMI reporta la memoria y errores de paridad de E/S. El procesador siempre actúa sobre esta interrupción, aun si emite un CLI para limpiar la bandera de interrupción en un intento por deshabilitar las interrupciones externas.

interrupciones
La línea INTR reporta las peticiones desde los dispositivos externos, en realidad, las interrupciones 05H a la 0FH, para cronometro, el teclado, los puertos seriales, el disco duro, las unidades de disco flexibles y los puertos paralelos. Una interrupción interna ocurre como resultado de la ejecución de una instrucción INT o una operación de división que cause desbordamiento, ejecución en modo de un paso o una petición para una interrupción externa, tal como E/S de disco. Los programas por lo común utilizan interrupciones internas, que no son enmascarables, para accesar los procedimientos del BIOS y del DOS.

Interrupciones DE BIOS
El BIOS contiene un extenso conjunto de rutinas de entrada/salida y tablas que indican el estado de los dispositivos del sistema. El dos y los programas usuarios pueden solicitar rutinas del BIOS para la comunicación con los dispositivos conectados al sistema. El método para realizar la interfaz con el BIOS es el de las interrupciones de software. Conocer los servicios de BIOS que nos permiten manejar el teclado, a más bajo nivel que DOS; especialmente, el manejo del teclado sin requerir de espera. A continuación se listan algunas interrupciones del BIOS.

Interrupciones DE BIOS

Interrupciones DE BIOS

Interrupciones DE BIOS

Interrupciones DE BIOS

A continuación un ejemplo de interrupción del BIOS: En términos generales, cuando hablamos de programar gráficos nos estamos refiriendo a las diferentes técnicas que podemos utilizar para desplegar en pantalla información diferente al texto plano, incluyendo aquellas instrucciones que escriben directamente en las direcciones de memoria que corresponden a la memoria RAM de la tarjeta controladora de video de la computadora. Ésta afirmación no se cumple necesariamente en la programación para Windows ya que en éste ambiente incluso el texto se considera como gráfico.

En forma normal es el BIOS de la computadora quién se encarga del acceso al hardware conectado en nuestra computadora, ésto incluye por ejemplo, las unidades de disco, los puertos y de particular interés para éste artículo, la tarjeta controladora de video, que actúa como interfaz entre la computadora y el monitor. Para desplegar gráficos en la pantalla del monitor necesitamos colocar el modo de video a un valor igual a 13h, para ésto utilizamos la interrupción 10h del BIOS especificando el valor 0x00 en el registro ax y el modo de video deseado en el registro al (0x13h) como puede verse en las líneas 17 a la 19 del siguiente programa, llamado Pixell, que despliega 250,000 pixeles aleatoriamente.

Interrupciones DE BIOS

Después de especificar el modo de video deseado, en éste caso, el modo 13h, utilizamos un bucle para graficar los pixeles. La forma más sencilla es utilizar la función del BIOS 0x0C especificandola en el registro ah. Para utilizar ésta función especificamos la coordenada x en el registro cx y la coordenada y en el registro dx, mientras que el valor correspondiente al color lo especificamos en el registro al. Consulte las líneas 27 a la 31 del programa. Como se puede apreciar, trazar pixeles utilizando el BIOS es relativamente sencillo, pero como al interés de programar gráficos está implícito el de la velocidad, pues ésta técnica resulta insuficiente.

Interrupciones DE BIOS

Interrupciones DE DOS
Los dos módulos del DOS, IO.SYS y MSDOS.SYS, facilitan el uso del BIOS. Ya que proporcionan muchas de las pruebas adicionales necesarias, las operaciones del DOS por lo general son mas fáciles de usar que sus contrapartes del BIOS y por lo común son independientes de la maquina. IO.SYS es una interfaz de nivel bajo con el BIOS que facilita la lectura de datos desde la memoria hacia dispositivos externos. MSDOS.SYS contiene un administrador de archivos y proporciona varios servicios

Interrupciones DE DOS
Por ejemplo, cuando un programa usuario solicita la INT 21H, la operación envía información al MSDOS.SYS por medio del contenido de los registros. Para completar la petición, MSDOS.SYS puede traducir la información a una o mas llamadas a IO.SYS, el cual a su vez llama al BIOS. Las siguientes son las relaciones implícitas:

Interrupciones DE DOS
Las interrupciones desde la 20H hasta la 3FH están reservadas para operaciones del DOS. A continuación se mencionan algunas de ellas.

Interrupciones DE DOS

Interrupciones DE DOS

Interrupciones DE DOS

La función int86() de Turbo C++ se usa para ejecutar una interrupción de software. Se declara como se indica acontinuación: int86(int intnum, union REGS *in, union REGS *out)

Interrupciones DE DOS
El número de la interrupción en esta función es intnum, in es una unión que contiene los registros que se usarán para pasar la información a los manejadores de la interrupción y out es una unión que guardará los valores devueltos por la interrupción (si los hay).
struct WORDREGS { unsigned int ax, bx, cx, dx, si, di; unsigned int cflag, flags; }; struct BYTEREGS { unsigned char al, ah, bl, bh, cl, ch; unsigned char dl, dh; }; union REGS { struct WORDREGS x; struct BYTEREGS h; };

Interrupciones DE DOS
Como se puede observar en la Fig. 3, REGS es una unión de dos estructuras que contiene el archivo de encabezado DOS.H. Usar la estructura WORDREGS permite acceder a los registros de la CPU como cantidades de 16 bits. El uso de BYTEREGS da acceso a los registros de 8 bits. A continuación un ejemplo de interrupción de Dos el Uso del Mouse. Aplicaciones usando el mouse Se pueden desarrollar aplicaciones en las que se incluya el manejo mediante el uso del mouse a través de la INT 33h (Mouse) con sus servicios correspondientes.

Interrupciones DE DOS
Los servicios del Mouse se utilizan invocándola INT 33h mediante la función int86(),colocando los valores adecuados en los registros según corresponda; es decir, cuando se desea invocar un servicio particular, deben inicializarse los registros con los valores correspondientes, invocarse la interrupción y el resultado de dicho servicio se coloca en los registros determinados.

COMO INVOCAR LOS SERVICIOS DEL MOUSE

SERVICIOS DEL MOUSE

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->