Foros del Web » Programación para mayores de 30 ;) » C/C++ »

interrupciones

Estas en el tema de interrupciones en el foro de C/C++ en Foros del Web. estoy a final de semestre y tengo que realizar como proyecto una interrupcion por software en C, he buscato incansablemente y todo lo que encuentro ...
  #1 (permalink)  
Antiguo 05/05/2008, 19:04
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
interrupciones

estoy a final de semestre y tengo que realizar como proyecto una interrupcion por software en C, he buscato incansablemente y todo lo que encuentro esta en turbo C

lo que debo hacer es una interrupcion por software en C
por favor facilitenme material o enlaces que puedan servirme de ayuda, ya he leido harto, pero necesito codigo en C

bajo linux claro esta...
  #2 (permalink)  
Antiguo 06/05/2008, 01:30
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: interrupciones

Tu tarea esta descripta de manera ambigua (como solo pedis informacion te respondo), primero y principal C no soporta interrupciones y por lo tanto vas a necesitar de cuanto menos inline assembly. Hay dos cosas que puede que te esten mandando hacer, uno llamar a una interrupcion que es algo muy simple y dos implementar una interrupcion, en ese caso mucho mas complejo yo lo haria mas o menos asi:

1. Programa de modo Usuario muy simple que solo escriba un mensaje por pantalla y llame a la interrupcion.

2. Un modulo de modo Kernel que establezca la interrupcion en la IDT (esto implica hacerla apuntar a una funcion tuya).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 06/05/2008, 05:23
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

Cita:
Iniciado por Eternal Idol Ver Mensaje
Tu tarea esta descripta de manera ambigua (como solo pedis informacion te respondo), primero y principal C no soporta interrupciones y por lo tanto vas a necesitar de cuanto menos inline assembly. Hay dos cosas que puede que te esten mandando hacer, uno llamar a una interrupcion que es algo muy simple y dos implementar una interrupcion, en ese caso mucho mas complejo yo lo haria mas o menos asi:

1. Programa de modo Usuario muy simple que solo escriba un mensaje por pantalla y llame a la interrupcion.

2. Un modulo de modo Kernel que establezca la interrupcion en la IDT (esto implica hacerla apuntar a una funcion tuya).


tu dices que llamar una interrupcion es algo muy simple, (escriba un mensaje por pantalla y llame a la interrupcion.), como se hace??? me imagino que los has hecho!! tienes algun codigo que me sirva de ayuda
  #4 (permalink)  
Antiguo 06/05/2008, 05:41
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: interrupciones

Por supuesto, con inline assembly para VC++:

Código:
#include <stdio.h>

#define int_num 0x66

void main()
{
    printf("Voy a llamar a la interrupcion 0x%X\r\n", int_num);
    __asm int int_num
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 06/05/2008, 05:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

Cita:
Iniciado por Eternal Idol Ver Mensaje
Por supuesto, con inline assembly para VC++:

Código:
#include <stdio.h>

#define int_num 0x66

void main()
{
    printf("Voy a llamar a la interrupcion 0x%X\r\n", int_num);
    __asm int int_num
}
y en el caso de C especificamente como seria???
porfa explicame esto:
printf("Voy a llamar a la interrupcion 0x%X\r\n", int_num);
__asm int int_num
perdona mi ignorancia!! gracias
  #6 (permalink)  
Antiguo 06/05/2008, 06:02
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: interrupciones

La primera linea es standard asi que funciona con cualquier compilador para la segunda te vas a tener que arreglar sola con la ayuda de tu compilador para el inline assembly ya que es otra sintaxis, aca la podes ver:

http://asm.sourceforge.net/articles/linasm.html
http://www.ibiblio.org/gferg/ldp/GCC...bly-HOWTO.html
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 06/05/2008, 06:30
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

besossssssssss gracias
  #8 (permalink)  
Antiguo 07/05/2008, 20:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

oye eternal idol, dime que compilador usas tu???
  #9 (permalink)  
Antiguo 07/05/2008, 20:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

por favor explicame por que tiene que ser con inline assembly, la llamada a la interrupcion??? no puede ser de otra forma??? o en que consiste que sea con inline assembly??? explicame eternal idol, gracias
  #10 (permalink)  
Antiguo 07/05/2008, 21:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

a que te referis cuando me decis: "con la ayuda de tu compilador para el inline assembly"????
explicame
  #11 (permalink)  
Antiguo 08/05/2008, 00:11
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: interrupciones

VC++.

C no soporta interrupciones y por lo tanto vas a necesitar de cuanto menos inline assembly.

Tenes que leer la ayuda del compilador que uses (dijiste Linux asi que supongo gcc, ahi te deje muchos enlaces utiles) ya que la sintaxis cambia de uno a otro.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #12 (permalink)  
Antiguo 08/05/2008, 09:35
 
Fecha de Ingreso: abril-2008
Mensajes: 39
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

perdon que me meta... y pregunte algo... pero no logro interpretar esto en el codigo que vos le mostras:

Código:
#define int_num 0x66
se que estas definiendo algo, lo que no se especificamente es que es esto "0x66", si me podrias explicar por que lo utilizas de esa forma, que significa, y como conseguis ese dato, te lo agradeceria muchisimo!

Cya!
  #13 (permalink)  
Antiguo 08/05/2008, 10:19
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: interrupciones

Cita:
Iniciado por ZeroEoyPnk Ver Mensaje
perdon que me meta... y pregunte algo... pero no logro interpretar esto en el codigo que vos le mostras:

Código:
#define int_num 0x66
se que estas definiendo algo, lo que no se especificamente es que es esto "0x66", si me podrias explicar por que lo utilizas de esa forma, que significa, y como conseguis ese dato, te lo agradeceria muchisimo!

Cya!
int_num, es el numero de la interrupcion que voy a llamar, en este caso 0x66 (no hay razon para el mismo, excepto que no es utilizada por el S.O., puede ser cualquiera).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #14 (permalink)  
Antiguo 08/05/2008, 16:46
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

oye eternal idol, ya he leido los de los enlaces que me diste , pero aun me queda una duda, ese codigo que tu me proporcionaste puede ser compilado por gcc??? es que segun tu la sintaxis varia con el compilador, pero no lo he compilado para comprobar si con gcc sirve!!! que me dices???
  #15 (permalink)  
Antiguo 08/05/2008, 16:48
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

te agradeceria que me proporcionaras mas informacion, porque la verdad he buscado pero no encuentro nada de codigo que es lo que me interesa, por lo menos un ejemplo!! que me ayude a entender con mas claridad...
  #16 (permalink)  
Antiguo 09/05/2008, 01:10
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: interrupciones

Leelos de nuevo e intenta compilarlo con gcc. Ya te di un ejemplo funcional, trata de generar el binario correspondiente.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #17 (permalink)  
Antiguo 15/05/2008, 09:23
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Re: interrupciones

ya intente compilarlo con gcc, y se generan errores, creo que al final de esta sentencia __asm int int_num falta un punto y coma (;) y me dice que falta un parentesis , bueno en fin....... no funciono
  #18 (permalink)  
Antiguo 15/05/2008, 10:12
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: interrupciones

Por supuesto, no va a funcionar el codigo que deje, ya te lo dije, tenes que leer los enlaces o buscar mas informacion sobre la sintaxis de AT&T.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #19 (permalink)  
Antiguo 17/05/2008, 13:19
 
Fecha de Ingreso: mayo-2008
Mensajes: 31
Antigüedad: 16 años
Puntos: 1
Respuesta: Re: interrupciones

Cita:
Iniciado por Eternal Idol Ver Mensaje
Por supuesto, no va a funcionar el codigo que deje, ya te lo dije, tenes que leer los enlaces o buscar mas informacion sobre la sintaxis de AT&T.
pues si te lo digo, fue porque ya lei y de igual forma quede en las mismas, te pregunto que si compila, por que segun tu ya habias hecho algo, y te habia funcionado....
gracias
  #20 (permalink)  
Antiguo 17/05/2008, 13:26
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: Re: interrupciones

Cita:
Iniciado por bebeme Ver Mensaje
pues si te lo digo, fue porque ya lei y de igual forma quede en las mismas, te pregunto que si compila, por que segun tu ya habias hecho algo, y te habia funcionado....
gracias
Si me lo decis es por haber leido mal este hilo, es la unica razon posible. Lo que yo hice funciona perfectamente pero en Windows y usando VC++ ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #21 (permalink)  
Antiguo 21/05/2008, 06:25
 
Fecha de Ingreso: diciembre-2004
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: interrupciones

bebeme, lee mejor los enlaces que te ha proporcinado Eternal Idol porque está explicado.

http://asm.sourceforge.net/articles/...html#InlineASM
http://www.ibiblio.org/gferg/ldp/GCC...-HOWTO.html#s4

Ahí te explica como es la sintaxis en gcc, y he tardado menos de dos segundos en encontrarlo. Fijate que son las mismas paginas que te dió Eternal Idol
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:02.