Interrupciones en Ensamblador

Profesor: Noé Amir Rodríguez Olivares Matricula: 000028609 Asignatura: Lenguaje Ensamblador Tipo de clase: “Regular” Cl

Views 350 Downloads 152 File size 3MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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

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

Características

Escribir puerto serial COM1 DL=ASCII

05H

Escribir puerto paralelo LPT1

DL=ASCII

08H

Leer teclado sin eco

AL=ASCII

09H

Mostrar cadena de caracteres

DS:DX dir de cadena; fin de cadena= $

25H

Almacenamiento del vector de interrupción

AL= # 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