Luciano Polo on Tue, 18 Mar 2003 13:39:17 -0600


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Indice por Fecha] [Indice por Hilo]

Re: [l-linux] lenguaje ensamblador en intel vs sparc


On Monday 17 March 2003 20:00, Daniel White wrote:
> saludos, la mayoria conocemos en intel, una interrupcion de hardware
> que abreviare como (int), como la int 10, trata sobre el video, una int
> 21, trata sobre el manejo de archivos,  ,etc mas las int de software,
> como para dejar un programa residente en memoria un TSR, (mm suena la
> base de un virus!)
>

Daniel,
El microprocesador está en constante interacción con los periféricos del
computador. Estos últimos requieren que en determinados momentos se ejecute
otro programa, comúnmente conocido como rutina de servicio de interrupción,
para procesar los datos que ellos generan. Ahora bien, ¿cómo puede el
microprocesador estar al tanto que en determinado momento el periférico
requiere de los servicios del microprocesador?. Una de las respuestas a
dicha pregunta es implementando  una rutina que
supervise constantemente el estado del periférico. Cuando esta rutina
detecta que se cumplen ciertas condiciones, se ejecuta la subrutina de
servicio. Este método o procedimiento trae como desventaja emplear,
innecesariamente, ciclos de máquina del microprocesador en determinar el
estado del periférico, ya que la necesidad de ejecutar la subrutina de
servicio es aleatoria. Una manera más refinada de solucionar este problema
es implementar un sistema en el microprocesador que permita que el
periférico le notifique la necesidad de sus servicios. Este es el concepto
de una interrupción; es decir; una interrupción es una solicitud al
microprocesador para que suspenda el programa en ejecución, y se ejecute la
rutina de servicio de interrupción. 
Existen tres tipos de interrupciones, a saber: interrupciones por hardware, 
interrupciones por software e interrupciones de excepción.

Se entiende como interrupción por hardware aquella interrupción solicitada
por un dispositivo de hardware. Existen dos tipos de estas interrupciones, a
saber: las mascarables y las no mascarables. Las interrupciones de hardware
mascarables son aquellas que pueden ser deshabilitadas. Las no
mascarables son aquellas que no pueden ser deshabilitadas.

Se entiende como interrupción por software aquella interrupción solicitidada
a través de una instrucción de interrupción, como por ejemplo la instrucción
INT 30, donde INT es la instrucción de interrupción de la serie de
microprocesadores Intel (8088, 80286, 80386, 80486, Pentium, Pro Pentium) y
30 es el número del Puntero de la subrutina de servicio de dicha
interrupción.

Se entiende como interrupción de excepción aquella interrupción del programa
en curso a consecuencia de alguna anormalidad durante la ejecución de dicho
programa o un error en el sistema.

Después que una de estas interrupciones halla sido activada, el
microprocesador almacena todos sus registros programables en la Pila
(Stack). Luego se accesa el puntero de la interrupción activada, con el fin
de comenzar a ejecutar la subrutina de servicio pertinente. La localidad de
memoria donde se encuentran todos los punteros de las diferentes subrutinas
de servicio es conocida con el nombre de Tabla de Vectores de Interrupción. 

La localidad de memoria de la tabla de vectores de interrupciones y como se 
procesan las solicitudes de interrupciones en un microprocesador depende de 
la arquitectura del microprocesador.

Espero que esta breve explicacion te sirva de complemento para que comprendas 
la respuesta de tu pregunta: 

>me surge la duda, con respecto al lenguaje ensamblador en una sparc, una
>int 10, en una sparc tambien se refiere al video?.


-- 
Luciano Polo
Lupolo@NewDevices.com
http://www.newdevices.com
B12E F38E 2FBD D68F D079  4A90 3751 8165 23A1 3C64
________________________________________________________________________
Lista de Correo <l-linux@linux.org.ve>
Visite
http://www.linux.org.ve/cgi-bin/mailman/listinfo/l-linux
para suscribirse, retirarse y leer las normas de uso.
Visite el canal IRC #velug en undernet.org para consultas interactivas