Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Interrupciones en la IBM PC
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
POLLING (SONDEO)
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
INTERRUPCIONES
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Internas o excepciones
Software
No Enmascarables NMI
Carlos Canto Q.
Enmascarables INTR
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
La tabla de vectores de interrupcin contiene las direcciones de las rutinas de servicio de las interrupciones que realizan las funciones asociadas con las interrupciones. Las rutinas del POST del BIOS inicializa la tabla de vectores, al momento de bootear, con las direcciones de las rutinas suministradas por el cdigo en la ROM BIOS y despus el DOS y nuestros programas de aplicacin agregan sus respectivos vectores a los vectores de esta tabla, conforme son cargados..
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
3FFF
Se ubica en 1024 localidades de RAM en la parte ms baja de la memoria que permiten 256 vectores de interrupcin de 4 bytes cada uno.
Tabla de vectores de interrupcin
Vector 0
Un vector de interrupcin est formado por la direccin de inicio de la rutina de servicio de la interrupcin ISR ( 2 bytes para CS y 2 bytes para IP)
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Error de divisin por 0 Ejecucin paso a paso NMI (No enmascarable) Instruccin INT Desbordamiento (INTO) Reservadas por INTEL (modo protegido)
Utilizables por el usuario Cada vector: 4 bytes Direccin del vector: 0: INT x 4 La tabla ocupa 256x4 = 1024 bytes (1 Kbyte)
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Cuando una interrupcin ocurre, independientemente de la fuente, el 80x86 realiza lo siguinte: 1) El CPU carga (push) el registro de banderas al STACK 2) La CPU carga al STACK la direccin de retorno lejano ( segmento:offset ) primero el valor del segmento. 3) La CPU determina la causa de la interrupcin ( esto es, lee el nmero o tipo de la interrupcin) y toma los 4 bytes del vector de interrupcin de la direccin 0000:vector*4. 4) La CPU transfiere el control a la rutina especificada por la tabla de vectores de interrupcin. Despus de completados estos pasos,la rutina de servicio de la interrupcin toma el control. Cuando la interrupcin desea regresar el control , debe ejecutar una instruccin IRET ( Interrupt Return). El retorno de una interrupcin recupera del STACK la direccin de retorno lejano y las banderas.
Carlos Canto Q.
INTERRUPCIONES EN LA IBM PC
STACK
04 00 15 09 FLAGS
2
F000:EB2E F000:E82F
IRET
IRET produce un retorno de la rutina de interrupcin al programa invocante, recuperando del STACK la direccin CS:IP de la instruccn que qued pendiente
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
0 1 2 3 4 5 6 7 8 9 A B C
00-03 04-07 08-0B 0C-0F 10-13 14-17 18-1B 1C-1F 20-23 24-27 28-2B 2C-2F 30-33
CPU divide by zero Debug single step Non Maskable Interrupt (NMI input on processor) Debug breakpoints Arithmetic overflow BIOS provided Print Screen routine Reserved Reserved IRQ0, Time of day hardware services IRQ1, Keyboard Interface IRQ2, ISA Bus cascade services for second 8259 IRQ3, Com 2 hardware IRQ4, Com1 hardware
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
D E F 10 11 12 13 14 15 16 17 18 19 1A
34-37 38-3B 3C-3F 40-43 44-47 48-4B 4C-4F 50-53 54-57 58-5B 5C-5F 60-63 64-67 68-6B
IRQ5, LPT2, Parallel port hardware (Hard Disk on XT) IRQ6, Floppy Disk adaptor IRQ7, LPT1, Parallel port hardware Video services, see note 1 Equipment check Memory size determination Floppy I/O routines Serial port I/O routines PC used for Cassette tape services Keyboard I/O routines Printer I/O routines Points to basic interpreter in a "real" IBM PC Bootstrap loader Time of day services
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
1B 1C 1D 1E 1F 20 21 22 23 24 25
6C-6F 70-73 74-77 78-7B 7C-7F 80-83 84-87 88-8B 8C-8B 90-93 94-97
Services Ctrl-Break service Timer tick (provides 18.2 ticks per second) Video parameters Disk parameters Video graphics Program termination (obsolete) All DOS services available through this Interrupt Terminate address Ctrl-Break exit address Critical error handler Read logical sectors
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
26 27 28 to 3F 40 to 4F 50 51 52 to 59 5A 5B 5D 5E 5F 60 to 66 67
98-9B 9C-9F A0-A3 to FC-FF 100-103 to 13C-13F 140-143 144-147 148-14B to 164-167 168-16B 16C-16F 174-177 178-17B 17C-17F 180-183 to 198-19B 19C-19F
Write logical sectors Terminate and stay resident routines (obsolete) Reserved for DOS Reserved for BIOS Reserved for BIOS Mouse functions Reserved for BIOS Reserved for BIOS Reserved for BIOS Reserved for BIOS Reserved for BIOS Reserved for BIOS Reserved for User programs Used for EMS functions
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
68 to 6F 70 71 72 73 74 75 76 77 78 to 7F 80 to 85 86 to F0 F1 to FF
1A0-1A3 to 1BC-1BF 1C0-1C3 1C4-1C7 1C8-1CB 1CC-1CF 1D0-1D3 1D4-1D7 1D8-1DB 1DC-1DF 1E0-1E3 to 1FC-1FF 200-203 to 214-217 218-21B to 3C0-3C3 3C4-3C7 to 3C4-3FF
Unused IRQ8, ISA bus Real time clock IRQ9, takes the place of IRQ2 IRQ10 (available hardware interrupt) IRQ11 (available hardware interrupt) IRQ12 (available hardware interrupt) IRQ13, maths co-processor IRQ14, ISA bus hard disk controller IRQ15, (available hardware interrupt) Unused Reserved for basic Used by basic Unused
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
EN GENERAL:
La
familia de microprocesadores 8086 pueden reconocer 256 diferentes interrupciones, cada una con un cdigo nico de TIPO (nmero) con el que el microprocesador lo identifica. entre 00 y FF en hexadecimal ) para apuntar a una localidad dentro de la tabla de vectores de interrupcin.
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
La CPU no puede dejar una instruccin a medio ejecutar, sensa las interrupciones en el ltimo ciclo de mquina de la instruccin en curso y responde al finalizar la instruccin en curso
SI
NMI NMI
SI TEMP TEMP SI IF IF 0 1 Interrupcin Interrupcin reconocida reconocida Lee cdigo Lee cdigo de tipo de tipo Push flags Push flags Let temp=TF Let temp=TF Clear IF&TF Clear IF&TF Push CS&IP Ejecuta ISR Ejecuta ISR Pop IP&CS Pop IP&CS Pop flags Pop flags Continua con Continua con el programa el programa
INTR INTR
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
INT 1:
paso a paso, se produce tras cada instruccin cuando el procesador est en modo traza (utilizada en depuracin de programas).
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
INT 6: cdigo de operacin invlido (slo a partir del 286). Se produce al ejecutar
una instruccin indefinida, en la pila se almacena el CS:IP de la instruccin ilegal.
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Producidas por el propio programa usando la instruccin INT para invocar ciertas subrutinas. La BIOS y el DOS utilizan algunas interrupciones a las que se puede llamar con determinados valores en los registros para que realicen ciertos servicios.
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Son generadas por dispositivos perifricos externo a travs de una seal elctrica. Se solicita la atencin de la CPU aplicndole la seal a sus terminales INT y NMI Las Enmascarables por INT : activa a nivel alto Las No Enmacarables por NMI: activa en flanco de subida
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
INTR NMI
CPU
La CPU genera dos impulsos de reconocimiento de interrupcin
INTA
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
INTERRUPCIONES ENMASCARABLES SE HABILITAN O DESHABILITAN POR PROGRAMA: Con la instruccin SETI se habilitan las interrupciones y pone la
bandera IF a 1 Con la instruccin CLI se inhiben todas las posibles interrupciones de este tipo y se pone la bandera IF a 0.
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
La IBM PC original us el controlador de interrupciones 8259. Este permita que se pudieran generen hasta 8 seales de interrupcin ( numeradas de 0 a 7). Estas lneas de interrupcin son llamadas lneas de Interrupt Request ( requerimiento de interrupcin) o IRQs
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
A partir de la IBM AT se incluyen 2 controladores de interrupcin, donde el segundo controlador (ESCLAVO) est conectado en cascada a la lnea de interrupcin 2 del primer controlador ( MAESTRO) . L a lneas de interrupcin del segundo controlador estn numeradas de 8 a 15. Debido a este cascadeo, la lnea de interrupcin 2 no est disponible. Sin embargo ; para compatibilidad con la PC original, la lnea de interrrupcin 2 es conectada a al lnea 9 del segundo controlador ( tal que, si un dispositivo en la PC es configurado para la interrupcin 2, en realidad ste usa la interrupcin 9)
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Interrupciones reservadas:
IRQ0 Temporizador (Timer) IRQ1 Teclado IRQ8 Reloj de tiempo real IRQ13 Errores del coprocesador IRQ14 Controlador de disco duro IRQ3 Puerto serie COM1 IRQ4 Puerto serie COM2 IRQ6 Controlador de diskette IRQ7 Puerto paralelo
PIC MAESTRO Dir E/S = 20h, 21h PIC ESCLAVO Dir E/S = A0h, A1h
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
El registro de mscara
Permite enmascarar individualmente cada entrada: 1 Prohibe interrupciones por esa lnea 0 Permite interrupciones por esa lnea
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
2. El PIC solicita interrupcin a la CPU (INT) 3. La CPU reconoce la peticin con un primer pulso de INTA 4. Se activa el bit correspondiente de ISR y se desactiva en IRR
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
El PIC 8259 (Programmable Interrupt Controller) Proceso de una interrupcin en el PIC (continuacin)
5. La CPU enva el segundo pulso de INTA 6. El PIC coloca un puntero de 8 bits en el bus de datos El valor del puntero es distinto para cada entrada IRQ Es programable 7. A partir de entonces comienza a ejecutarse la rutina de atencin
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Fin de interrupcin (EOI) Los bits activos de ISR bloquean futuras peticiones por esa lnea
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Deben ponerse a 0 al terminar la rutina de servicio: (EOI) Formas de poner a 0 el bit de ISR: 1. Programar el modo automtico (AEOI) colocar el El bit se pone a 0 automticamente al puntero en el bus de datos No especfico : pone a 0 el de ms prioridad Especfico: pone a 0 el que se le indica
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Para deshabilitar la interrupcin de algn dispositivo especfico, escriba un uno al registro de mscara Para habilitar la interrupcin de algn dispositivo especfico, escriba un cero al registro de mscara
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
SERVICIO A DISPOSITIVOS PERIFRICOS..............(6) SERVICIO A DISPOSITIVOS PERIFRICOS..............(6) STATUS DEL EQUIPO..................................................(2) STATUS DEL EQUIPO..................................................(2) HORA Y FECHA...........................................................(1) HORA Y FECHA...........................................................(1) PRINT SCREEN...........................................................(1) PRINT SCREEN...........................................................(1) SERVICIOS ESPECIALES............................................(2) SERVICIOS ESPECIALES............................................(2)
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
INT 10H............................................SERVICIO DEL VIDEO INT 10H............................................SERVICIO DEL VIDEO INT 13H............................................SERVICIOS DE DISKETTE INT 13H............................................SERVICIOS DE DISKETTE INT 14H............................................COMUNICACIONES INT 14H............................................COMUNICACIONES INT 15H............................................SERVICIOS DEL SISTEMA INT 15H............................................SERVICIOS DEL SISTEMA INT 16H............................................SERVICIOS DEL TECLADO INT 16H............................................SERVICIOS DEL TECLADO INT 17H............................................SERVICIOS DE IMPRESORA INT 17H............................................SERVICIOS DE IMPRESORA
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Carlos Canto Q.
INT 11H............................................LISTADO DEL EQUIPO INT 11H............................................LISTADO DEL EQUIPO INT 12H............................................TAMAO DE MEMORIA INT 12H............................................TAMAO DE MEMORIA
ARQUITECTURA DE COMPUTADORAS II
Rengln 0 Rengln 0 Columna 0 Columna 0 0 1 2 0123
INTERRUPCIONES EN LA IBM PC
DH
22 23 24 Rengln 24 Rengln 24 Columna 0 Columna 0 Rengln 12 Rengln 12 Columna 40 Columna 40
Rengln 24 Rengln 24
Ejemplo:Colocar al cursor en las Columna 79 Ejemplo:Colocar al cursor en las Columna 79 posiciones (DL,DH)=(12,40) posiciones (DL,DH)=(12,40) MOV AH,02H MOV AH,02H ;invocar a la ;invocar a la funcin 2 de la INT funcin 2 de la INT 10h 10h MOV BH,00 MOV BH,00 pgina 0 pgina 0 ;trabajar con la ;trabajar con la
MOV DH,12 ;cargar el #de MOV DH,12 ;cargar el #de columna en DH columna en DH MOV DL,40 MOV DL,40 rengln en DL rengln en DL INT 10H INT 10H rutina del BIOS ;cargar el # de ;cargar el # de ;Invocar a la ;Invocar a la
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Limpiar la pantalla
18:4F
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
Cada posicin de un video normal o inverso. en la pantalla carcter (25X80=2000 ) es representado por 2 bytes: El primero es el ASCII del caracter El segundo es el byte que contiene el atributo
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
__________________________________________ __________________________________________
Servicio Servicio
00 00 01 01 02 02 03 03 04 04 05 05
Descripcin Descripcin
Carlos Canto Q.
Inicializa el puerto serial Inicializa el puerto serial Enva un carcter Enva un carcter Recibe un carcter Recibe un carcter Lee el status del puerto serie Lee el status del puerto serie Inicializa el puerto serie extra Inicializa el puerto serie extra Control del puerto de comunc. Control del puerto de comunc.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC
ACTIVA LOS PARAMETROS SIGUIENTES: ACTIVA LOS PARAMETROS SIGUIENTES: _________________________________________ _________________________________________
EL BAUDAJE EL BAUDAJE LA PARIDAD LA PARIDAD EL NMERO DE STOPS BITS EL NMERO DE STOPS BITS EL TAMAO EN BITS DEL DATO EL TAMAO EN BITS DEL DATO
Carlos Canto Q.
ARQUITECTURA DE COMPUTADORAS II
INTERRUPCIONES EN LA IBM PC