Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Int Dos y Bios

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 28

INTERRUPCIONES DEL BIOS Y

DOS
REGISTROS USO DEL RATÓN

USO DE LOS USO DE LOS


SERVICIOS SERVICIOS
DEL BIOS CON DEL DOS CON
INTERRUPCIONES 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.
Interrupciones DE
BIOS
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 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
COMO INVOCAR LOS SERVICIOS DEL MOUSE
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.
SERVICIOS DEL MOUSE

También podría gustarte