Sei sulla pagina 1di 31

Profesor:

Noé Amir Rodríguez Olivares

Matricula:
000028609

Asignatura:
Lenguaje Ensamblador

Tipo de clase:
“Regular”

Clase:
Interrupciones en ensamblador
Objetivos de la clase

El objetivo de esta clase es que el alumno mejore su capacidad para


plantear soluciones con códigos en lenguaje ensamblador a partir de
un problema planteado y utilizando interrupciones.
Introducción

En esta clase se dará una orientación sobre las interrupciones y su


manera de operarlas.
Interrupciones

Las interrupciones son una manera de realizar la comunicación entre el procesador


con el hardware y software de un programa, permitiéndole ampliar su capacidad de
manejar hardware a través del sistema operativo, o recibir mensajes del mismo.

Defina si el siguiente ejemplo de interrupción es por hardware (h) o software (s)

• Entrada de un dato del mouse

• Una operación da como resultado un cero

• Un programa ha terminado su operación

• Una impresora manda un mensaje de error


Interrupciones
Otra forma de decirlo:
Una interrupción es el rompimiento en la secuencia de un programa para ejecutar
un programa especial llamando una rutina de servicio cuya característica principal es
que al finalizar regresa al punto donde se interrumpió el programa.

Tipos de interrupciones por hardware:


• Interrupciones por hardware enmascarables: Aquellas que el usuario decide si
quiere o no ser interrumpido.
• Interrupciones por hardware no enmascarable (NMI): Aquellas que siempre
interrumpen al programa.
Interrupciones

Las interrupciones por hardware ocurren cuando un dispositivo necesita atención


del procesador y genera una señal eléctrica en la línea IRQ que tiene asignada.

Interrupción no enmascarable significa que la interrupción no puede ser


Deshabilitada por software. Este tipo de interrupciones ocurren cuando se recibe
Una señal en la patilla NMI ("Nonmaskable Interrupt") del procesador. Se reservan
para casos en que es crítica la respuesta, por ejemplo que se detecte un error de
paridad en la memoria. Además son de prioridad más alta que las enmascarables.

¿A tu consideración, qué fallas o eventos en la computadora generarían una


interrupción no enmascarable?
Vector de Interrupciones
Es un vector que almacena la
dirección de atención a
la interrupción.

Los vectores de interrupción se


almacenan en una tabla en una
zona de memoria. La llamada
tabla de vectores de
interrupción.

Cuando se atiende una petición


de interrupción de número n, el
sistema, tras realizar
eventualmente algunas tareas
previas (tales como salvar el valor
de ciertos registros) transfiere el
control a la dirección indicada
Vector de Interrupciones

El vector de interrupción se direcciona mediante 4 bytes, ya que se encuentra almacenado


en los primeros 1024 bytes de memoria (00000h-003FFh), con los 4 bytes de dirección se
definen los vectores de interrupción, con un total de 256 interrupciones diferentes.

Cada vector contiene la dirección


de un procedimiento ISR*. Los
primeros 2 bytes contienen a IP y
los 2 últimos contienen a CS, donde
se encuentra el código a ejecutar
debido a la interrupción

* Rutina de atención a interrupción


Interrupciones

Interrupción Tipo Descripción


INT #n Software Es una instrucción para llamar a la interrupción
INTR Hardware Int. Externa mascarable
NMI Hardware Int. Externa no enmascarable
Interna Software Condiciones internas de error
Instrucciones de interrupción

Otra forma de decirlo:

Una interrupción es la ocurrencia de un evento o condición que causa


la suspensión temporal del programa mientras la condición es
atendida por otro subprograma.

INT n Esta instrucción llama al procedimiento de servicio de


interrupción ISR que comienza en la dirección representada por el
vector número n.

Existen 256 instrucciones para la interrupción INT n por software.

El DOS (Disk Operating System) contiene una serie de rutinas en


software que puede utilizar el programador.

La INT 21H es utilizada para procesar acciones diversas las cuales


deben estar contenidas previamente en el registro AH antes de
ejecutar la interrupción.
La interrupción 21H

Acción Descripción Características


00H Terminar programa Terminar el programa y retorna el control al DOS
01H Leer teclado con eco AL=ASCII; Pantalla=eco
02H Desplegar carácter DL=ASCII
03H Leer puerto serial COM1 AL=ASCII
04H Escribir puerto serial COM1 DL=ASCII
05H Escribir puerto paralelo DL=ASCII
LPT1
08H Leer teclado sin eco AL=ASCII
09H Mostrar cadena de DS:DX dir de cadena; fin de cadena= $
caracteres
25H Almacenamiento del AL= # interrupción;
vector de interrupción DS:DX= Dirección de ISR
2AH Leer fecha de sistema CX=año; DH=mes; DL=dia del mes; AL=dia
semana
Función 09h INT 21H

EFECTO: Se envía una cadena de caracteres al dispositivo estándar de


salida. Si no se ha re direccionado la salida, la cadena se enviará a la
pantalla.
¿Cómo imprimo un mensaje
especifico?
Para imprimir en pantalla un mensaje específico
se utiliza la interrupción 21h, con el valor 09H
cargado en ah, y se debe utilizar la palabra
reservada offset para indicar cual vector se va a
imprimir.
¿Cómo limpio la pantalla?

Para limpiar la pantalla se utiliza la interrupción


10h, con el valor 03H cargado en al.
Función 01h INT 21H
¿Cómo filtro los valores que entran?
¿Cómo imprimo un vector o arreglo?
¿Cómo invierto el texto 1 de 4?
¿Cómo se ve en el software?
¿Cómo invierto el texto 2 de 4?
¿Cómo filtro los valores que entran?
¿Cómo filtro los valores que entran?
Cuando se presiona enter
¿Cómo invierto el texto 3 de 4?
¿Cómo invierto el texto 3 de 4?
¿Cómo invierto el texto 4 de 4?
¿Cómo invierto el texto 4 de 4?
.

Muchas gracias
Anexo 1
Anexo 2
Anexo 2

Potrebbero piacerti anche