58
Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Embed Size (px)

Citation preview

Page 1: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 1© Jaime Alberto Parra Plaza

CLASE 13

INTERRUPCIONESE

INTERRUPCIONES DE ENTRADA/SALIDA

Page 2: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 2© Jaime Alberto Parra Plaza

TEMA 1

INTERRUPCIONES

Page 3: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 3© Jaime Alberto Parra Plaza

El microprocesador provee un mecanismo para que la comunicación con los periféricos sean fácil de implementar, éste es el de las interrupciones. Puede decirse que un uP cuando está activo estará en una de dos situaciones:

• Ejecutando el programa actual

• Atendiendo una interrupción

Page 4: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 4© Jaime Alberto Parra Plaza

Una instrucción de interrupción, en su forma más simple, permite llamar una subrutina.

Estas subrutinas han sido implementadas para darle al usuario la capacidad de interactuar con los servicios disponibles en la BIOS o en la parte interna del sistema operativo, ya sea para comunicarse con los periféricos o para manejar el sistema de archivos.

Page 5: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 5© Jaime Alberto Parra Plaza

La dirección de inicio de las subrutinas se almacena en una tabla al comienzo de la RAM (tabla de vectores de interrupción), la cual es accesible a cualquier programa. La subrutina que es invocada se conoce como servicio de interrupción.

La sintaxis de la orden es:

INT ndonde n es un número entre 0 y 255.

Page 6: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 6© Jaime Alberto Parra Plaza

Cuando aparece esta orden, el uP realiza la siguiente secuencia de pasos:

• Detectar la instrucción• Guardar IP, CS y banderas en la pila• Multiplicar el número de int. por 4• Cargar CS e IP con los nuevos valores• Ejecutar el código en la nueva dirección• Continuar ejecutando hasta llegar a IRET• Retraer de la pila IP, CS y banderas• Continuar el programa anterior

Page 7: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 7© Jaime Alberto Parra Plaza

CS

IP

INT 7

Segmentode código actual

uP MEMORIA

1. DETECTAR LA INSTRUCCIÓN:

Page 8: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 8© Jaime Alberto Parra Plaza

uP

CS

IP

Flags

MEMORIA

Pila

2. GUARDAR IP, CS Y BANDERAS EN LA PILA:

Page 9: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 9© Jaime Alberto Parra Plaza

3. MULTIPLICAR n POR 4:

p n * 4

Para el ejemplo:

p 7 * 4

p 28

Page 10: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 10© Jaime Alberto Parra Plaza

4. CARGAR CS E IP CON LOS VALORES APUNTADOS POR p:

IP 0 : [ p ]

CS 0 : [ p + 2 ]

Estos valores son el segmento y el desplazamiento del servicio a la interrupción y se llaman vectores de interrupción.

Page 11: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 11© Jaime Alberto Parra Plaza

MEMORIA

uP

IP

CS

28293031

primer Kilobyte

Page 12: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 12© Jaime Alberto Parra Plaza

MEMORIA

uP1a. instrucción

nuevo segmento de Código

CS

IP IRET última instrucción

5. EJECUTAR EL CÓDIGO QUE INDICA LA NUEVA DIRECCIÓN:

Page 13: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 13© Jaime Alberto Parra Plaza

MEMORIA

uP

CS

IP IRET

6. CONTINUAR EJECUTANDO EL SERVICIO HASTA HALLAR LA ORDEN IRET (RETORNAR DE INTERRUPCIÓN):

Page 14: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 14© Jaime Alberto Parra Plaza

CS

IP

Flags

uP MEMORIA

Pila

7.EXTRAER DE LA PILA LOS ANTIGUOS VALORES DE CS, IP Y BANDERAS:

Page 15: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 15© Jaime Alberto Parra Plaza

Segmento de Códigoactual

MEMORIA

uP

CS

IP

INT 7

8. CONTINUAR LA EJECUCIÓN DEL PROGRAMA ANTERIOR:

Page 16: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 16© Jaime Alberto Parra Plaza

El sistema operativo MS-DOS se compone de una serie de miniprogramas, que dan soporte al manejo de recursos físicos y de recursos lógicos.

Todo el sistema operativo está hecho en assembly puro y llano, igual al que se usa para crear programas de usuario.

La estructura del DOS es:

Page 17: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 17© Jaime Alberto Parra Plaza

COMMAND. COM

Manejadores de Dispositivos Estándares

MSDOS. SYS

IO.SYS y BIOS

Page 18: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 18© Jaime Alberto Parra Plaza

INTÉRPRETE DECOMANDOS

(COMMAND.COM)

Interacciona con el usuario y traduce las órdenes que éste ingresa en llamados a los programas que realizan esas tareas.

Page 19: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 19© Jaime Alberto Parra Plaza

MANEJADORES DE DISPOSITIVOS ESTÁNDARES

Traducen órdenes de alto nivel en comandos para los periféricos. Estas rutinas pueden ser invocadas por el Intérprete de Órdenes o por un programa de usuario.

Page 20: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 20© Jaime Alberto Parra Plaza

MANEJADORES DE RECURSOS LÓGICOS

(MSDOS.SYS)

Funciones para manejo de archivos y de directorios. Traducen órdenes abstractas como abrir archivo o cambiar directorio a las órdenes físicas que hacen tales labores.

Page 21: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 21© Jaime Alberto Parra Plaza

DRIVERS DE RECURSOS FÍSICOS (IO.SYS)

Funciones y Servicios para manejo de periféricos a nivel físico. Estas rutinas, que actúan en coordinación con las rutinas de la ROM-BIOS, se entienden con los periféricos a nivel hardware.

Page 22: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 22© Jaime Alberto Parra Plaza

Cuando el sistema se inicializa, se cargan las funciones de MSDOS.SYS e IO.SYS desde disco y se llena la tabla de vectores de interrupción con las direcciones de cada función.

Estas funciones usualmente están en la ROM BIOS o, si son actualizaciones, en el IO.SYS. Pueden incluso estar en la memoria convencional, si el usuario ha decidido remplazar la función de atención nativa por una creada por él o por un proveedor.

Page 23: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 23© Jaime Alberto Parra Plaza

Ejemplos de funciones disponibles:

Soporte Lógico: Crear directorioAbrir archivoLeer archivo, etc.

Soporte Físico:Inicializar impresoraMover cursorCambiar modo de pantallaLeer tecladoEscribir vídeo, etc.

Page 24: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 24© Jaime Alberto Parra Plaza

Tanto las funciones DOS (de MSDOS.SYS) como las funciones BIOS (de IO.SYS) se invocan con números de interrupción.

Es natural que las funciones DOS sean de “más alto nivel”, pues no se relacionan directamente con el hardware, como sí lo hacen las interrupciones BIOS.

Prácticamente, casi todas las funciones DOS están incluídas en una sola interrupción, la INT 21H, cada función se discrimina dando el número de la función.

Page 25: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 25© Jaime Alberto Parra Plaza

El esquema típico de llamado es:

MOV AH, nf; nf es el número de función a solicitar; llenar, eventualmente, otros registros con; información necesaria para la función

INT 21H; invocar los servicios DOS; recoger, si corresponde, valores; retornados por la función en registros; específicos

Page 26: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 26© Jaime Alberto Parra Plaza

TEMA 2

INTERRUPCIONES DE ENTRADA / SALIDA

(E/S)

Page 27: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 27© Jaime Alberto Parra Plaza

De todos los servicios, aquéllos que son indispensables para crear programas de cierta utilidad, son los que permiten interactuar con un usuario, es decir, los servicios de entrada de información por teclado y los servicios de salida de información por vídeo.

Cada servicio de interrupción será explicado siguiendo el siguiente formato:

Page 28: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 28© Jaime Alberto Parra Plaza

función: un nombre significativo, preferiblemente el nombre de la función equivalente en lenguaje C, si existe.

propósito: explica qué hace la función.

entrada: muestra qué parámetros recibe la función y en qué registros deben colocarse.

Page 29: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 29© Jaime Alberto Parra Plaza

salida: indica qué valor(es) retorna la función y en qué registros quedan ubicados.

observación: campo opcional, que se coloca cuando se requiera dar una explicación más amplia sobre alguno de los campos anteriores.

ejemplo: código que muestra cómo usar la función.

Page 30: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 30© Jaime Alberto Parra Plaza

INTERRUPCIONES DE ENTRADA:

Las funciones básicas con la entrada estándar (teclado) son:

1. Indagar si se ha pulsado alguna tecla2. Leer una tecla sin mostrarla en pantalla3. Leer una tecla mostrándola en pantalla

Antes de ver estas funciones, es conveniente aclarar unos aspectos sobre el teclado:

Page 31: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 31© Jaime Alberto Parra Plaza

TECLAS Y CÓDIGOS:

El teclado original del IBM poseía sólo las teclas para edición básica:

a. Letras: a, b, c, ........, y, z.

b. Números: 0, 1, ......, 8, 9.

c. Signos de puntuación: , ; . : !, etc.

d. Teclas de edición: TAB, ENTER, ESCAPE, BackSpace, etc.

Page 32: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 32© Jaime Alberto Parra Plaza

Cada una de estas teclas puede asociarse con un código ASCII entre 1 y 255 (no se usan todos) y casi todas tienen un símbolo asociado que puede escribirse en pantalla.

A este teclado se le llama estándar y a las teclas que en él están se les llama normales.

Page 33: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 33© Jaime Alberto Parra Plaza

Los teclados actuales poseen teclas adicionales:

a. De función: F1, F2, etc.

b. De movimiento del cursor: , , HOME, PgUp, etc.

c. De combinación: CTRL-tecla, ALT-tecla.

Page 34: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 34© Jaime Alberto Parra Plaza

A este teclado se le llama extendido y a las teclas adicionales se les llama especiales.

Para diferenciar las teclas especiales de las normales, se les asigna a aquéllas un código de 2 bytes:

El primero siempre es el carácter NULO (ASCII 0) y el segundo es el código de la tecla. Estas teclas por lo general no tienen un símbolo asociado, así que cuando se intenta imprimir en pantalla no siempre se obtiene un símbolo significativo.

Page 35: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 35© Jaime Alberto Parra Plaza

INTERRUPCIONES PARA ENTRADA BÁSICA:

1. DETECTAR ESTADO DEL TECLADO:

Función: kbhit()Propósito: Detectar si una tecla ha sido

pulsadaEntrada: AH = 0BHSalida: AL = FFH si hay carácter

disponible, AL = 00H si no hay.

Page 36: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 36© Jaime Alberto Parra Plaza

Ejemplo:

WAIT:MOV AH, 0BHINT 21H

IF23:CMP AL, 0FFH ; hay tecla pulsada?JE KEYPRESSED ; si: procesarla

JMP WAIT ; no: esperar

Page 37: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 37© Jaime Alberto Parra Plaza

2. LEER TECLA SIN HACER ECO:

Función: getch()Propósito: Leer una tecla sin hacer eco a

la pantalla (sin mostrarla) Entrada: AH = 08HSalida: AL = carácter leído

Observación:Si el carácter leído es 0, indica un carácter especial, en este caso debe invocarse el servicio nuevamente para obtener el

código de la tecla especial.

Page 38: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 38© Jaime Alberto Parra Plaza

Ejemplo:

WAIT_ESC:MOV AH, 08HINT 21H

IF14:CMP AL, 27 ; ¿pulsada ESC? JE BYE ; si: terminar JMP WAIT_ESC ; no: esperar

Page 39: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 39© Jaime Alberto Parra Plaza

3. LEER TECLA HACIENDO ECO A LA PANTALLA:

Función: getche()Propósito: Leer una tecla haciendo

eco a la pantalla (mostrándola)

Entrada: AH = 01HSalida: AL = carácter leídoObservaciones: Igual que getch().

Page 40: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 40© Jaime Alberto Parra Plaza

Ejemplo:

MOV AH, 01HINT 21HCMP AL, 00H ; ¿es especial?JNE NORMAL_KEYMOV AH, 01H ; sí es especial, ...INT 21H ; ... leer el códigoMOV tecla, ALMOV tipo, ‘E’

; < sigue >

Page 41: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 41© Jaime Alberto Parra Plaza

; < viene >

JMP CONTINUENORMAL_KEY:

MOV tecla, ALMOV tipo, ‘N’

CONTINUE:

Page 42: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 42© Jaime Alberto Parra Plaza

INTERRUPCIONES PARA SALIDA BÁSICA:

1. ESCRIBIR UN CARACTER EN PANTALLA:

Función: putch()Propósito: Escribir un carácter ASCII

en la pantallaEntrada: AH = 02H,

DL = carácter a escribirSalida: Ninguna.

Page 43: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 43© Jaime Alberto Parra Plaza

Ejemplo:

MOV DL, ‘A’

MOV AH, 02H

INT 21H ; escribir la letra A

Page 44: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 44© Jaime Alberto Parra Plaza

MANEJO DE CADENAS:

La interrupción 21H posee servicios tanto para leer cadena (funciones 0AH y 3FH) como para escribir cadena (funciones 09H y 40H). Sin embargo, el instructor desaprueba su uso, puesto que precisan que las cadenas estén en un formato que es incompatible con los estándares para manejo de cadenas.

Page 45: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 45© Jaime Alberto Parra Plaza

CADENAS ASCIIZ:

Dado que una cadena es una sucesión de caracteres, se precisa, para su adecuado manejo, saber dos cosas:

• El código en que se representan los caracteres

• El número de caracteres que forman la cadena

Page 46: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 46© Jaime Alberto Parra Plaza

El estándar que usan la mayoría de computadores y de sistemas para representar cadenas es el llamado ASCIIZ cuyo nombre indica que:

• Los caracteres se representan usando el código ASCII

• La longitud de la cadena es desconocida, pero se sabe que termina con el carácter ASCII 0 o carácter NULO

Page 47: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 47© Jaime Alberto Parra Plaza

Para manipular cadenas, se utilizarán dos funciones implementadas por el instructor (explicadas en detalle posteriormente). Este enfoque ofrece dos ventajas:

• Se comprende que, cuando el sistema operativo no ofrece un servicio que se requiere, puede crearse a partir de los que si ofrece

• Es un excelente ejemplo para aprender a implementar funciones

Page 48: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 48© Jaime Alberto Parra Plaza

FUNCIONES GETS Y PUTS:

Se han implementado dos macros que permiten leer (gets) o escribir (puts) una cadena.

Gets lee una sucesión de caracteres y le añade un terminador NULO.

Puts escribe en pantalla una cadena que sea terminada por ASCII 0.

Page 49: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 49© Jaime Alberto Parra Plaza

LEER UNA CADENA:Función: gets max, cadenaPropósito: Leer caracteres desde el

teclado hasta que se presione

ENTER o hasta que se lean max caracteres

Entrada: max: máximo número de caracteres a leer (hasta 255)cadena: puntero a un

buffer en memoria donde se alojará la cadena leída

Salida: Ninguna.

Page 50: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 50© Jaime Alberto Parra Plaza

Ejemplo:

Respuesta DB 50 DUP (?); buffer para guardar la cadena

...

...Gets 49, Respuesta

; dar el máximo de caracteres permitidos, ...; ... se debe dejar un byte libre para el final ...; ... de cadena

Page 51: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 51© Jaime Alberto Parra Plaza

ESCRIBIR UNA CADENA:

Función: puts cadenaPropósito: Escribir los caracteres de

cadena en pantalla hasta encontrar un carácter

ASCII 0Entrada: cadena: puntero a un

buffer en memoria donde reside la cadena a

escribirSalida: Ninguna.

Page 52: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 52© Jaime Alberto Parra Plaza

Ejemplo:

Mensaje DB “¡Hola mundo!”, 0; cadena a escribir (¡recordar el terminador!)

...

...Puts Mensaje

; interactuar con el mundo real

Page 53: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 53© Jaime Alberto Parra Plaza

INTERRUPCIONES HARDWARE

Lo descrito hasta ahora corresponde a las llamadas interrupciones software, nombre que indica que los servicios se invocan desde dentro de un programa. Existen también las interrupciones hardware en donde la petición de servicio se hace desde fuera del microprocesador, ya sea desde un periférico o un chip de soporte.

Page 54: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 54© Jaime Alberto Parra Plaza

A grandes rasgos, para activar una interrupción por hardware, se debe colocar un valor binario 0 en una entrada de control del uP llamada también INT. Cada vez que el uP realiza una instrucción, consulta el estado de esta línea y, si está en 0, procede a entrar en un estado llamado atención a interrupción hardware.

Page 55: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 55© Jaime Alberto Parra Plaza

En este estado se realiza un intercambio de información entre el uP y el elemento que solicita el servicio (SR), siendo un proceso en el cual intervienen activamente entidades hardware y software.

Para que la comunicación tenga éxito, ambas partes deben estar de acuerdo en comunicarse siguiendo un protocolo común:

Page 56: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 56© Jaime Alberto Parra Plaza

ATENCIÓN A UNA INT. HARDWARE:

• El SR activa el pin INT

• El uP termina de ejecutar la instrucción actual y consulta el pin INT

• Como el pin INT está activado procede a responder activando el pin INTA

• El SR coloca en el bus de datos el número de interrupción que desea

• El uP procede a realizar el servicio

Page 57: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 57© Jaime Alberto Parra Plaza

PREGUNTA 13

¿Cómo utiliza el computador el chip PIC 8259 (controlador de interrupciones programable) para aumentar la capacidad de atención de interrupciones del microprocesador?.

Page 58: Pbn - 13 - 1 © Jaime Alberto Parra Plaza CLASE 13 INTERRUPCIONES E INTERRUPCIONES DE ENTRADA/SALIDA

Pbn - 13 - 58© Jaime Alberto Parra Plaza

< FIN DE LA CLASE 13 >