Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Ensamblador > Como modificar el IP
-Foros de debate

Ensamblador
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Como modificar el IP
Enviado por Juan el día 21 de abril de 2004

Podría alguien decirme cómo puedo modificar el IP para que salte a otra parte del programa cuando se regresa de una interrupción?

 
Re: Como modificar el IP
Enviado por Rodrigo el día 21 de abril de 2004

Tu eres nuevo en programacion verdad ?

 

Re: Como modificar el IP
Enviado por Mariano Cerdeiro el día 30 de abril de 2004

mmm, para retornar de una interrupcion debes ejecutar un IRET...

Pero no se si entiendo bien lo que decis. NO TENES forma de saber cuando volvio de una interrupcion. =( pero no se si estoy entendiendote

para saltar a otra parte del codigo podes usar call o jmp... la diferencia supongo la entendes?

saludos.
mariano.-

 
Re: Re: Como modificar el IP
Enviado por Juan el día 7 de mayo de 2004

Bueno, tan nuevo en porgramación no lo soy pero tengo una muy buena bronca, Estoy tratando de hacer un cambio de contexto, pero necesito guardar el IP junto con el CS y el FLAGS, y colocar un IP ,CS y FLAGS de lo que se estaba ejecutando con anterioridad, el problema es que la interrupcion de reloj 1C quien sabe donde guarde el IP y no puedo hacer que cuando termine la interrupcion regrese a mi nuevo IP, o si alguien sabe en donde puedo investigar lo del cambio de contexto le agradecería eternamente el favor.

 
Re: Re: Re: Como modificar el IP
Enviado por Martin Ribelotta el día 7 de mayo de 2004

Modifica el STACK. En una interrrupcion (que supongo sera del timer ;-) tenes tres cosas puestas en el stack.
BP+0 -> FLAGS (1 WORD)
BP+2 -> CS (1 WORD)
BP+4 -> IP (1 WORD)
Cambiar el valor de CS e IP puede ser un problema, para hacer un cambio de contexto, cambia la pila (apunta a otro STACK, el del otro proceso) cambiando el SS:SP actaul entonces cuando cambies la pila, en vez de retornar al task actual retornas al task que cambiaste la pila. El secreto està en la creacion del n uevo task con su pila (alrededor de 1 o 2 Kb)
Otra, antes de hacer el cambio de pila (y cualquier otra cosa) pone todos los registros en la pila con un PUSH y los recuperas (una vez cambiada la pila) con pops inversos.
Podes guiarte por el codigo de MINIX que implementa esto de una manera espectacular en un 8086 con 512 Kb de ram ...y corre varios procesos juntos....!!!!!!!!!!!!!!

Suerte...

 
Re: Re: Re: Re: Como modificar el IP
Enviado por Alfredo el día 7 de mayo de 2004

Nuevo no eres.......Eres novísimo. No sabes lo que es una interrupción.....Te has planteado como vas a recuperqr el IP si lo modificas ?

Cuando se ejecuta una interrupción se guarda el IP en la pila y el iret recupera esa dirección para continuar con la siguiente instrucción a la última antes de entrar la interrupción.

Estudia más que te falta mucho por aprender.

 
Re: Re: Re: Re: Re: Como modificar el IP
Enviado por Manuel el día 26 de junio de 2004

Alfredo, como se ve que eres un idiota, y que el novísimo eres tú. No seas Estúpido si se quiere modificar el IP es obvio que lo que se quiere es regresar a otra parte del programa. Alfredo te recomiendo que antes de hablar conectes el cerebro y mejor te pongas a estudiar que a ti es el que le falta mucho por aprender. Juan modificar el IP en C es algo complidado, al parecer lo que tu quieres es hacer es un cambio de contexto y la verdad eso es algo demasiado complicado que se utiliza para hacer uKernels, sólo un experto en sistemas operativos maneja ese tipo de cosas. Yo te recomiendo que busques en la red los archivos fuentes de linux con los cuales puedes generar cambios de contexto o bien descarga el minix y revisa como genera el cambio de contexto.

 
Re: Re: Re: Re: Re: Re: Como modificar el IP
Enviado por kayec el día 19 de septiembre de 2004

kreo ke tengo el mismo problema hacer el cambio de procesos en ensamblador para el 80386, podrian decirme donde descrago el codigo de mimix porfa

 






Re: Como modificar el IP
Enviado por - el día 3 de febrero de 2005

No se si llego a tiempo x'D, pero puedes usar MH, que es un sistema operativo de juguete que seguro que te puede servir.

 


Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network