lunes, 27 de abril de 2009

Interrupcion de teclado AND

a
mov ah, 0
int 16
sub al, 30
mov dl, al
mov ah, 0
int 16
sub al, 30
mov cl, al
and cx, dx
jmp 100

q

Interrupcion de teclado OR

a
mov ah , 0
int 16
sub al,30
mov dl, al
mov ah , 0
int 16
sub al,30
mov cl, al
or cx,dx
jmp 100

q

Interrupcion de teclado NOT

a
mov ah , 0
int 16
sub al,30
mov dl, al
mov ah , 0
int 16
sub al,30
mov cl, al
not dx
jmp 100

q

Interrupcion de teclado division

a
mov ah, 0
int 16
sub al, 30
mov bl, al
mov ah, 0
int 16
sub al, 30
mov ah, 00
div bx
jmp 100

q

Interrupcion de teclado multiplicacion

a
mov ah, 0
int 16
sub al, 30
mov dl, al
mov ah, 0
int 16
sub al, 30
mov ah, 00
mul dx
jmp 100

q

interupcion por teclado suma

a
mov ah , 0
int 16
sub ax,30
mov dl, al
mov ah , 0
int 16
sub ax,30
mov cl, al
add cx,dx
jmp 100

q

Interrupcion por teclado resta

a
mov ah , 0
int 16
sub ax,30
mov dl, al
mov ah , 0
int 16
sub ax,30
mov cl, al
sub cx,dx
jmp 100

q

sábado, 11 de abril de 2009

Interrupciones

Existen tres tipos de interrupciones:
Requeridas por hardware:

La interrupción original y tradicional es aquella iniciada por un periférico que demanda atención ya que ha ocurrido un evento relativo a este periférico que demanda algún procedimiento de parte de la CPU. En un PC las primeras 16 interrupciones son de este tipo por lo que los primeros 64 bytes de la memoria RAM son direcciones que apuntan bloques de instrucciones residentes en otras áreas de la memoria RAM. Cabe notar que estas 16 primeras interrupciones que son generadas por hardware que necesita atención rápida por lo que debe interrumpirse a la brevedad cualquier cosa que la CPU esté haciendo en ese momento.


Lista de las interrupciones generadas por hardware



Requerida por software para interactuar con periféricos:

Una característica importante de la operación de interrupciones es que ellas están jerarquizadas para resolver conflictos entre las múltiples interrupciones. Esto puede ser necesario por ejemplo mientras una interrupción está siendo ejecutada para atender un dispositivo y en ese momento un segundo dispositivo pide una interrupción. Se debe tener un mecanismo para decidir qué acción tomar. Este mecanismo está basado en la priorización de interrupciones de modo que una interrupción de mayor prioridad puede interrumpir una de menor prioridad pero no al revés. De este modo el sistema de interrupciones funciona ordenadamente lo que permite por ende un funcionamiento robusto del computador. Las interrupciones para comunicarse con los periféricos forman la base de lo que se conoce como las interrupciones BIOS (Basic Input-Output System). Los vectores en la memoria asignada a estas interrupciones apuntan a memoria ROM, ya que las funciones correspondientes vienen implementadas desde fábrica y son independientes del sistema operativo. Las funciones BIOS se emplean con DOS, Windows y Lynux indistintamente.


Las interrupciones BIOS más importantes son las siguientes:

Requerida por software de uso general:


El sistema de interrupciones funciona muy bien, ya que incluso permite que una interrupción interrumpa la ejecución de otra interrupción que en ese momento esté siendo ejecutada. Dada la eficiencia del esquema de interrupciones también se estila usar interrupciones generadas por software. Vale decir el mismo programa en ejecución puede llamar a una interrupción. En este caso la interrupción funciona como una función o sub-rutina. Lo que ocurre en este caso es que al implementar una función como una interrupción por software es que su prioridad y ejecución queda determinada por el manejo general de interrupciones que hace el PC.

Motivo de las Interrupciones

Las interrupciones se pueden generar por diversas causas:

  1. Excepciones de programa: hay determinadas causas que hacen que un programa presente un problema en su ejecución, por lo que deberá generarse una interrupción, de forma que el sistema operativo trate dicha causa. Ejemplo: el desbordamiento en las operaciones aritméticas, la división por cero.
  2. Interrupciones de reloj: el oscilador que gobierna las fases de ejecución de las instrucciones máquina se denomina reloj. El objetivo de estas interrupciones es hacer que el sistema operativo entre a ejecutar operaciones de forma sistemática cada cierto intervalo de tiempo. De esta manera, el sistema operativo puede evitar que un programa monopolice el uso de la computadora y puede hacer que entren a ejecutarse programas en determinados instantes de tiempo. Estas interrupciones se producen cada varios milisegundos, por ejemplo cada 20 milisegundos.
  3. Interrupciones de E/S: una de las funciones principales del núcleo de cualquier sistema operativo es mantener una comunicación tal con el microprocesador, que permita controlar correctamente los dispositivos de E/S. Los controladores de estos dispositivos necesitan interrumpir para indicar las operaciones que realizan.
  4. Excepciones del hardware: La detección de un error de paridad en la memoria o un corte de corriente se avisan mediante la correspondiente interrupción. Las memorias RAM se dividen en estáticas y dinámicas. Una computadora usa tanto memoria de nueve bits (ocho bits y un bit de paridad, en 9 chips de memoria RAM dinámica) como memoria de ocho bits sin paridad. En el primer caso los ocho primeros son para datos y el noveno es para el chequeo de paridad, que se refiere al uso de bits de paridad para verificar si los datos han sido transmitidos correctamente. El bit de paridad es añadido a cada siete bits que se transmite.
  5. Instrucciones de TRAP: Estas instrucciones permiten que un programa genere una interrupción. Estas instrucciones se emplean fundamentalmente para solicitar los servicios del sistema operativo. Precisamente la activación misma del sistema operativo solamente se realiza mediante el mecanismo de las interrupciones. Cuando es un proceso en ejecución el que desea un servicio del sistema operativo ha de utilizar una instrucción TRAP, que genera la interrupción pertinente. En los demás casos será una interrupción, interna o externa, la que reclame la atención del sistema operativo.