Vous êtes sur la page 1sur 21

INDICE.

Introduccin 3 Concepto de Interrupciones 4 5 6 8 9 11

Interrupciones por Software Interrupciones por Hardware Conflictos por Hardware Interrupciones Enmascarables Interrupciones No Enmascarables 12

Llamadas a Servicios del Sistema Modos de Direccionamiento 14

Implcito Inmediato Directo Indirecto Absoluto De registro Indirecto mediante registros De desplazamiento De pila 17 Respecto a un registro base Respecto a un registro ndice Respecto al contador de programa Indexado con autoincremento/autodecremento Instruccin de salto con direccionamiento absoluto Instruccin de salto con direccionamiento relativo Direccionamiento paginado y direccionamiento segmentado 20 21

14 15 15 16 16 16 16 17

17 18 18 18 19 19

Conclusin Referencias 22

INTRODUCCIN.

Lenguajes de Interfaz

UNIDAD I

Como sabemos, en la materia de Lenguajes de Interfaz, tenemos como competencia el obtener los conocimientos para el diseo e implementacin de interfaces hombre-mquina y mquina-mquina para la automatizacin de sistemas.

De manera que esto es posible gracias a una buena cimentacin en temas como lo son los procesos internos que tienen las computadoras tanto en su procesador, como en su memoria y sus dispositivos de entrada y salida; as como tambin un conocimiento extenso del lenguaje ensamblador, ya que una vez que nosotros entendemos como una computadora funciona y se comunica internamente, podremos entender y manejar de mejor manera este complejo lenguaje, ya sea para lograr mandar rdenes a la mquina de forma ms directa y enfocada.

Algunos de estos conocimientos se obtuvieron en materias pasadas, y algunos se explicaran a continuacin, con el fin de extender nuestro conocimiento en el rea de la arquitectura interna tanto del CPU como de la memoria.

En el presente documento se ha recabado de distintas fuentes algunos conceptos, ejemplos y explicaciones sobre temas como lo son las interrupciones, las llamadas a servicios del sistema y los modos de direccionamiento.

1.4 EL CONCEPTO DE INTERRUPCIONES

Las interrupciones son un mtodo del que disponen los dispositivos e incluso los procesos para hacer notar a la CPU la aparicin de alguna circunstancia que requiera su intervencin. De este modo, los dispositivos pueden provocar que la CPU deje por el momento la tarea que estaba realizando y atienda la interrupcin.

Lenguajes de Interfaz

UNIDAD I

Una vez atendida, seguir con su labor anterior.

Todo ese tiempo que el procesador estaba sondeando el estado de los dispositivos era tiempo que no se poda dedicar a otros procesos, con lo que significa esto en cuanto a rendimiento. Por todo ello se, pens que lo mejor era que existiera una lnea especial entre el procesador y los dispositivos, por la que los dispositivos indicaban al procesador que ya estaban listos. Cuando al procesador le llega una interrupcin, la atiende inmediatamente dejando de hacer lo que estuviera haciendo. Para poder atenderla de la forma correcta, debe saber con anterioridad cmo tratarla. Por ello, las computadoras tienen en un sitio conocido de memoria las distintas rutinas de tratamiento para las diferentes interrupciones el procesador reconoce la interrupcin de la que se trata y busca en memoria la rutina correspondiente. Una vez terminado el tratamiento de la interrupcin, es muy importante que el procesador siga con lo que estaba haciendo. Por eso es muy importante que antes de tratar la interrupcin se guarde de alguna forma el estado del computador, y al terminar la rutina de tratamiento se restaure el estado.

Interrupciones por Software.

Las interrupciones software son provocadas por los programas usando una funcin especial del lenguaje. Tienen como objetivo el que la CPU ejecute algn tipo de funcin. Al terminar de ejecutarse esta funcin, se seguir ejecutando el programa que provoc la interrupcin. Este tipo de interrupciones son la forma ms
3

Lenguajes de Interfaz

UNIDAD I

importante que tendrn los programas de ejecutar funciones especiales del DOS (Disk Operating System) o del BIOS (Basic Input Output System). Estas funciones tienen un nmero de interrupcin software asociada. Cuando un programa lanza una interrupcin de este tipo, la CPU ejecuta su funcin de tratamiento asociada.

Las funciones que se ejecutan con cada interrupcin software son un estndar en el mundo PC. En nuestro caso, algunas de las interrupciones que nos van a ser mas tiles sern: Interrupcin 14h: Acceso al puerto serie por la BIOS. Interrupcin 21h: Funciones del DOS. Interrupcin 17h: Servicios de acceso a la impresora de la BIOS.

Cada interrupcin tiene asociadas varias funciones. Para usar cada una de las funciones de la interrupcin que nos interese se debe: - Escribir en un registro el nmero de interrupcin. - Escribir en otro registro en nmero de funcin deseada. - Escribir en otro/s registro/s los parmetros asociados con la funcin. - Lanzar la interrupcin. Interrupciones por hardware.

Una interrupcin se convierte en una interrupcin de hardware cuando es solicitada por uno de los componentes de hardware del equipo. En efecto, existen varios perifricos en un equipo. Estos perifricos necesitan generalmente utilizar los

Lenguajes de Interfaz

UNIDAD I

recursos del sistema aunque slo sea para comunicarse con el sistema mismo.

Cuando un perifrico desea acceder a un recurso, enva un pedido de interrupcin al procesador para llamar su atencin. Los perifricos cuentan con un nmero de interrupcin que se denomina IRQ (Peticiones de Interrupcin. Es como si cada perifrico tirara de un "hilo" que est atado a una campaa para sealarle al equipo que desea que le preste atencin.

Este "hilo" es, de hecho, una lnea fsica que conecta cada ranura de expansin as como cada interfaz E/S a la placa madre. Para una ranura ISA de 8 bits, por ejemplo, hay 8 lneas IRQ que unen ranuras ISA de 8 bits a la placa madre (IRQ0 a IRQ7). Estos IRQ estn controlados por un "controlador de interrupcin" que se encarga de cederle la palabra al IRQ que posee la mayor prioridad.

Al aparecer las ranuras de 16 bits, se agregaron IRQ 8 a 15. En consecuencia, fue necesario agregar un segundo controlador de interrupcin. Los dos grupos de interrupciones estn unidos por IRQ 2 el cual se conecta (o "produce una cascada") a IRQ9. En cierto modo, esta cascada "inserta" IRQ 8 a 15 entre IRQ1 y 3:

Los perifricos regularmente necesitan "pedir prestada memoria" del sistema para utilizarla como zona bfer, es decir, un rea de almacenamiento temporario que permita que los datos de E/S sean rpidamente guardados. Por lo tanto, el canal de acceso directo a la memoria, llamado DMA (Acceso Directo a Memoria fue definido precisamente para esto.

El canal DMA designa un acceso a una de las ranuras (RAM) memoria de acceso aleatorio del equipo, ubicado por una "direccin de inicio RAM" y una
5

Lenguajes de Interfaz

UNIDAD I

"direccin de fin". Este mtodo permite a un perifrico pedir prestado canales especiales que le brindan un acceso directo a la memoria, sin necesidad de intervencin, por parte del microprocesador, para descargar estas tareas.

Una PC tiene 8 canales DMA. Los primeros cuatro canales DMA poseen un ancho de banda de 8 bits mientras que los DMA 4 a 7 poseen a su vez un ancho de banda de 16 bits.

Los canales DMA por lo general suelen asignarse de la siguiente manera:

DMA0: libre DMA1: (tarjeta de sonido)/libre DMA2: controlador de disquete DMA3: puerto paralelo (puerto de la impresora) DMA4: controlador de acceso directo a memoria (conectado a DMA0) DMA5: (tarjeta de sonido)/libre DMA6: (SCSI)/libre DMA7: disponible

Conflictos de hardware.

Una interrupcin es una lnea que une el perifrico al procesador. Una interrupcin es una interrupcin de hardware cuando es solicitada por uno de los componentes

Lenguajes de Interfaz

UNIDAD I

de hardware de la PC. Por ejemplo, este es el caso al tocar una tecla y que el teclado llama la atencin del procesador sobre este hecho. No obstante, los 256 interruptores no pueden ser solicitados al mismo tiempo ya que se interrumpe el hardware y los diferentes perifricos siempre realizan interrupciones muy especficas.

Por lo tanto, al instalar las tarjetas de expansin, debe asegurarse que, durante la configuracin, el mismo interruptor no se utilice para dos perifricos diferentes. Si esto sucediera, ocurrira un "conflicto del hardware" y ningn perifrico funcionaria.

Verdaderamente, si dos perifricos utilizan el mismo interruptor, el sistema no sabr cmo distinguirlos. Un conflicto del hardware no sucede nicamente cuando dos perifricos poseen el mismo hardware. Tambin puede ocurrir un conflicto cuando dos perifricos poseen la misma direccin E/S o usan los mismos canales DMA.

Para realizar una transferencia por interrupcin simple, ocurren generalmente los

Lenguajes de Interfaz

UNIDAD I

siguientes pasos:

1. Un dispositivo perifrico solicita una interrupcin. 2. El microprocesador emite un conocimiento de la interrupcin. 3. Se guarda el PC y el programa brinca a una localidad de la memoria que contiene una rutina para procesar la interrupcin. 4. El contenido de los registros internos (de trabajo y estatus) son guardados y la transferencia de datos es ejecutada bajo control de software.

Las Interrupciones pueden ser enmascarables y no enmascarables.

Interrupciones Enmascarables

Una interrupcin enmascarable tiene la caracterstica que si el microprocesador ejecuta una instruccin de deshabilitar interrupcin,(DI), cualquier seal de control en la lnea de interrupcin ser ignorado o enmascarada (masked out). El procesador se mantendr sin hacer caso a la lnea de la interrupcin enmascarable (EI) sea ejecutada.

Las Interrupciones ordinarias INT tambin pueden ser enmascaradas selectivamente por el programador. Haciendo uso de los flip flops IFF1 y IFF2 a 1 las Interrupciones son autorizadas. Ponindolas a cero (mascarndolos) se prevendr la deteccin de INT. La instruccin EI es usada para habilitarlas y DI para deshabilitarlas. IFF1 y IFF no son puestos en 1 simultneamente durante la ejecucin de las

Lenguajes de Interfaz

UNIDAD I

instrucciones EI y DI, las Interrupciones son deshabilitadas para prevenir cualquier prdida de informacin.

Para que el microprocesador acepte esta interrupcin, deben de cumplirse las siguientes condiciones:

1. Que las Interrupciones hayan sido habilitadas previamente. 2. Que la entrada Busreq no est activa. 3. Que la entrada NMI no est activa.

El Z-80 puede responder a 3 formas de interrupciones enmascarables, dependiendo de cul de los modos de interrupcin ha sido seleccionado por el programa del microprocesador.

Modo 0: En este modo el dispositivo que provoca la interrupcin coloca una palabra de 8 bits en bus de datos en lugar de que lo haga la memoria. Esa instruccin es leda por el Z-80 en el ciclo de respuesta a una interrupcin y ejecutada inmediatamente despus.

Modo 1: Es un modo de interrupcin no vectorizada. Una interrupcin en la lnea INT en este modo, har brincar a el procesador a una localidad fija ; la 0038h.

Modo 2: Es un modo de interrupcin vectorizada que se habilita con la instruccin IM2. En este modo, la direccin de la rutina de servicio de interrupcin es almacenada en dos bytes del espacio de memoria.

Lenguajes de Interfaz

UNIDAD I

Interrupciones No Enmascarable.

Este tipo de Interrupciones no puede ser inhibido por el programador. Es por esto que se dice que es no enmascarable. Siempre ser aceptada por el Z80 hasta que finalice la instruccin en curso, asumiendo que no se ha recibido una requisicin de buses (BUSREQ). Si un NMI se recibe durante un BUSREQ se har 1 el flip flop interno NMI, y ser procesador al finalizar el BUSREQ.

El NMI producir una colocacin push automtica del contador del programa en el STACK, y brinca a la direccin 0066h : Los dos bytes que representan la direccin 0066h ser instalado en el contador de programa. Estos representan la direccin de inicio de la rutina de manejo para el NMI.

Este mecanismo fue diseado as por rapidez, ya que es usado en casos de emergencia. Por esto, no ofrece la flexibilidad del modo de interrupcin enmascarable.

1 0

Lenguajes de Interfaz

UNIDAD I

1.5 LLAMADAS A SERVICIOS DEL SISTEMA.

En el mundo Windows en general, las llamadas al sistema se denominan API (Windows application programming interface), es un conjunto de funciones residentes en bibliotecas (generalmente dinmicas, tambin llamadas DLL por sus siglas en ingls, trmino usado para referirse a stas en Windows) que permiten que una aplicacin corra bajo un determinado sistema operativo. Por ejemplo, Windows proporciona una funcin denominada FlashWindowEx que permite que la barra de ttulo de una aplicacin alterne entre un sombreado claro y otro oscuro.

Las funciones API se dividen en varias categoras:


Depuracin y manejo de errores E/S de dispositivos Varias DLL, procesos e hilos Comunicacin entre procesos Manejo de la memoria Monitoreo del desempeo Manejo de energa Almacenamiento Informacin del sistema GDI (interfaz para dispositivos grficos) de Windows (tales como impresoras) Interfaz de usuario de Windows

La ventaja de utilizar las API de Windows en el cdigo es que pueden ahorrar tiempo porque contienen numerosas funciones tiles ya escritas y listas para utilizar. La

1 1

Lenguajes de Interfaz

UNIDAD I

desventaja es que puede resultar difcil trabajar con las API de Windows y pueden ser implacables cuando las cosas van mal.

Las API de Windows representan una categora especial de interoperabilidad. Las API de Windows no utilizan cdigo administrado, no tienen bibliotecas de tipos integradas y utilizan tipos de datos que son diferentes a los que se utilizan en Visual Studio. Debido a estas diferencias y a que las API de Windows no son objetos COM, la interoperabilidad con las API de Windows y .NET Framework se lleva a cabo mediante la invocacin de la plataforma o PInvoke. Invocacin de la plataforma es un servicio que permite al cdigo administrado llamar a funciones no administradas implementadas en archivos DLL.

Las llamadas a las API de Windows constituan en el pasado un parte importante de la programacin de Visual Basic, pero en Visual Basic 2005 pocas veces resultan necesarias. Siempre que sea posible, debe utilizar cdigo administrado en .NET Framework para llevar a cabo tareas en lugar de utilizar llamadas a las API de Windows.

1.6 MODOS DE DIRECCIONAMIENTO.

1 2

Lenguajes de Interfaz

UNIDAD I

Los llamados modos de direccionamiento son las diferentes maneras de especificar en informtica un operando dentro de una instruccin en lenguaje ensamblador. Un modo de direccionamiento especifica la forma de calcular la direccin de memoria efectiva de un operando mediante el uso de la informacin contenida en registros y / o constantes, contenida dentro de una instruccin de la mquina o en otra parte.

Implcito En este modo de direccionamiento no es necesario poner ninguna direccin de forma explcita, ya que en el propio cdigo de operacin se conoce la direccin del (de los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operar. Supongamos una arquitectura de pila, las operaciones aritmticas no requieren direccionamiento explcito por lo que se ponen como: - add - sub Ya que cuando se opera con dos datos en esta arquitectura se sabe que son los dos elementos del tope de la pila:

1 3

Lenguajes de Interfaz

UNIDAD I

top() es 1 Elementos de una pila ntop() es 2 1 2 3 4 5 6 pila donde top() representa el tope de la pila y ntop() el siguiente al tope de la pila y son estos argumentos con los que se opera al Para finalizar y dejar este modo de direccionamiento generalizado para las arquitecturas ms usuales, remarcamos que tambin podemos encontrarlo en la arquitectura con registros de propsito general, por ejemplo con rdenes como setc, que pone a 1 el registro c (acarreo).

Inmediato En este modo el operando es especificado en la instruccin misma. En otras palabras, una instruccin de modo inmediato tiene un campo de operando en vez de un campo de direccin. El campo del operando contiene el operando actual que se debe utilizar en conjunto con la operacin especificada en la instruccin. Las instrucciones de modo inmediato son tiles para inicializar los registros en un valor constante. Cuando el campo de direccin especifica un registro del procesador, la instruccin se dice que est en el modo de registro. Por ejemplo: MOV A,#17H

Directo El campo de operando en la instruccin contiene la direccin en memoria donde se encuentra el operando.

1 4

Lenguajes de Interfaz

UNIDAD I

En este modo la direccin efectiva es igual a la parte de direccin de la instruccin. El operando reside en la memoria y su direccin es dada directamente por el campo de direccin de la instruccin. En una instruccin de tipo ramificacin el campo de direccin especifica la direccin de la rama actual. Con este tipo de direccionamiento, la direccin efectiva es contenida en la misma instruccin, tal como los valores de datos inmediatos que son contenidos en la instruccin. Un procesador de 16 bits suma la direccin efectiva al contenido del segmento de datos previamente desplazado en 4 bits para producir la direccin fsica del operando. Por ejemplo: MOV A,17H

Indirecto El campo de operando contiene una direccin de memoria, en la que se encuentra la direccin efectiva del operando. Por ejemplo: MOV A,@17H

Absoluto El campo de operando contiene una direccin en memoria, en la que se encuentra la instruccin.

De registro Sirve para especificar operandos que estn en registros. Por ejemplo: MOV A,R0

1 5

Lenguajes de Interfaz

UNIDAD I

Indirecto mediante registros El campo de operando de la instruccin contiene un identificador de registro en el que se encuentra la direccin efectiva del operando. En este modo el campo de la direccin de la instruccin da la direccin en donde la direccin efectiva se almacena en la memoria. El control localiza la instruccin de la memoria y utiliza su parte de direccin para acceder a la memoria de nuevo para leer una direccin efectiva. Unos pocos modos de direccionamiento requieren que el campo de direccin de la instruccin sea sumado al control de un registro especificado en el procesador. La direccin efectiva en este modo se obtiene del siguiente clculo: Dir. efectiva = Dir. de la parte de la instruccin + Contenido del registro del procesador... Por ejemplo: MOV A,@R0

De desplazamiento Combina el modo directo e indirecto mediante registros

De pila Se utiliza cuando el operando est en memoria y en la cabecera de la pila. Este direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO), las cuales estn marcados por el fondo de la pila y el puntero de pila (*SP), El puntero de pila apunta a la ltima posicin ocupada. As, como puntero de direccionamiento usaremos el SP. El desplazamiento ms el valor del SP nos dar la direccin del objeto al que queramos hacer referencia.

1 6

Lenguajes de Interfaz

UNIDAD I

Respecto a un registro base

Este modo de direccionamiento es muy usado por los ensambladores cuando se llaman a las funciones (para acceder a los parmetros apilados en la pila, valga la redundancia). Consiste, al igual que el indirecto a travs de registro, en calcular la EA (Effective Address) como la suma del contenido del registro base y un cierto desplazamiento (u offset) que siempre ser positivo. Esta tcnica permite cdigos reentrantes y acceder de forma fcil y rpida a posiciones cercanas de memoria. EA = RB+offset RB = registro base offset = desplazamiento -> RB se comporta como una direccin de memoria a la que se le sumar el desplazamiento

Respecto a un registro ndice Es similar al anterior, lo nico que es el contenido del registro ndice el que indica el desplazamiento que se produce a partir de una direccin de memoria que se pasa tambin como argumento a la orden que utiliza este modo de direccionamiento. Aunque en esencia son dos modos equivalentes. La EA se calcula como la suma del contenido del registro ndice y una direccin de memoria.

Respecto al contador de programa Consiste en direccin una posicin de memoria usando como registro base al contador de programa (PC), el funcionamiento es anlogo al direccionamiento respecto a registro base con la salvedad de que, en este caso, el offset puede ser tambin negativo.

1 7

Lenguajes de Interfaz

UNIDAD I

Indexado con autoincremento/autodecremento Es un modo de direccionamiento anlogo al indexado, explicado anteriormente. La nica diferencia es que permite un incremento o decremento de la direccin final o el registro ndice segn los siguientes casos: Indexado con autopreincremento: Incrementa el registro ndice primero (se incrementa un valor, segn el tamao del objeto direccionado) y luego calcula la EA al igual que el direccionamiento indexado. Indexado con autoposincremento: Calcula la direccin efectiva y despus incrementa esta. Indexado con autopredecremento: Decrementa el registro ndice y despus calcula la direccin efectiva. Indexado con autoposdecremento: Calcula la direccin efectiva y despus decrementa esta.

Instruccin de salto con direccionamiento absoluto Consiste en cargar en el PC el valor que se especifica en la orden de salto, Por ejemplo: jmp 0xAB Carga 0xAB en PC

Instruccin de salto con direccionamiento relativo

1 8

Lenguajes de Interfaz

UNIDAD I

Es parecida a la especificada anteriormente la diferencia es que el salto es relativo al PC, pongamos un ejemplo: Supongamos que PC vale = 0x0A, si nosotros interpretamos la instruccin jr +03, saltaremos tres posiciones posteriores a PC (tambin podra ser -03 y seran posiciones anteriores). Pero, cuidado! si esa instruccin estaba en la posicin 0x0A la direccin de PC a incrementar ser la inmediatamente posterior (ya que PC se incrementa automticamente despus de leer la instruccin), por lo que quedara: PC = 0x0B ---> nuevo PC = 0x0B+0x03 = 0x0E, con lo que el PC quedara como 0x0E. Direccionamiento paginado y direccionamiento segmentado

Paginado: La memoria se encuentra actualmente dividida en pginas

(bloques de igual longitud). Para obtener las direcciones necesitamos: Indicador de pgina (IP): en un registro especfico o de propsito general de la mquina. Direccin de la palabra (DP): en el campo CD de la instruccin. As, concatenando ambas partes obtenemos la direccin completa.

Segmentado: La memoria se divide en porciones cuyos tamaos son

variables. As, para acceder a ellos se tiene una tabla de segmentos que contiene la direccin del comienzo y del final de cada segmento en memoria. Usar este tipo de direccionamientos tiene como ventajas que se puede definir

1 9

Lenguajes de Interfaz

UNIDAD I

segmentos de tamao arbitrario. Por otro lado, esta misma ventaja, el fraccionamiento de memoria es uno de sus problemas. Ambos modos de direccionamiento facilitan la multiprogramacin gracias a la tcnica de la memoria virtual que permite que un proceso no tenga que estar cargado ntegramente en memoria, si no que se cargan distintas pginas del mismo (o segmentos). Si se intenta cargar una pgina o segmento que no se encuentra en la memoria principal se produce una excepcin de falta de pgina o segmento y se accede a la memoria para cargar la informacin requerida en la memoria principal.

CONCLUSIN

En general, algunos temas que se pudieron apreciar e identificar fueron los conceptos que explican las interrupciones, de manera que existe ms de un tipo de interrupcin, ya sea de hardware o de software, estas son acciones que se realizan para ordenar al CPU que suspenda su trabajo debido a un inconveniente o situacin que pudiera entorpecer su proceso. El tema de las llamadas a los servicios del sistemas es considerado como simple y necesario en cuanto a su comprensin, y manejo ya que gracias a estas llamadas es como se dan en el manejo de las algunos comando para acciones a realizar por el CPU. Los modos de direccionamiento son las diferentes maneras de especificar un operando dentro de una instruccin en lenguaje ensamblador, existen diversos comandos para el direccionamiento y realmente no todos cuentan con un nombre especifico y algunos varan segn el autor que se consulte.

2 0

Lenguajes de Interfaz

UNIDAD I

Como conclusin es importante mencionar que los temas mencionados anteriormente, son algunas de las bases o fundamentos que la materia Lenguajes de Interfaz posee; ya que temas como las llamadas a los servicios de sistema y los modos de direccionamiento, sern a continuacin, parte de nuestro lenguaje cotidiano. Esto se debe a que poseen una amplia relevancia para la comprensin de temas posteriores en la asignatura.

REFERENCIAS.

http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/SISTE MAS%20_OPERATIVOS/UNIDAD7/7.3.htm

http://es.slideshare.net/yesyduc10/comunicacion-interna-de-la-computadora

http://www.fing.edu.uy/tecnoinf/cursos/arqcomp/material/teorico/arqteorico13.p df

www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r40732.DOC http://dac.escet.urjc.es/~lrincon/uned/etc1/ModosDireccionamiento.pdf

2 1