• Viernes 29 de Marzo de 2024, 08:57

Autor Tema:  Re: reset en asm  (Leído 3243 veces)

vandyke

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: reset en asm
« en: Miércoles 5 de Noviembre de 2003, 21:37 »
0
Hola a todos, este es mi primer post, estoy interesado en lograr reiniciar una maquina bajo windows 95, mi profesor me dijo que debia hacerlo logrando meter en CS la direccion 0FFFFH y en IP la direccion 0000H, de modo que CS+IP = 0FFFFH.

Espero alguna ayuda, estoy usando el turbo assembler 2.01.

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: reset en asm
« Respuesta #1 en: Miércoles 5 de Noviembre de 2003, 23:48 »
0
Haber no parece sencillo.
podrias provar las siguientes cosas:
1)
;;;***************************

mov ax,0FFFFh
mov es,ax
mov bx,0
jmp es:bx

;;;;**************************

2)
con la instruccion de CALL
saltar a una rutina y cuando la instrucion empile la IP y las demas alterar dentro esa rutina los valores correspondientes luego con la instruccion RET esos valores los actualizara.

3) editar un ejecutable con Turbo Debag y cambiar los valores de CS e IP.


no tengo idea si eso funcione pero me parece que no deberia reeiniciar, pero podria tratarse de un error de windonws me pregunto si funcionara en win98?

vandyke

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: reset en asm
« Respuesta #2 en: Viernes 7 de Noviembre de 2003, 02:31 »
0
Me he interesado por la segunda alternativa que me has dado. El problema esta en que me dices que debo modificar los valores correspodientes a CS e IP dentro de la rutina?
Podias darme mas o menos una idea de como hacer esto?

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: reset en asm
« Respuesta #3 en: Viernes 7 de Noviembre de 2003, 05:05 »
0
Aqui tienes informacion sobre las instrucciones CALL y RET:

http://studies.ac.upc.es/FIB/EC1/materi ... utines.pdf

en las paginas 9 y 10, esta lo que necesitas

Astor

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: reset en asm
« Respuesta #4 en: Viernes 7 de Noviembre de 2003, 13:58 »
0
El problema es que el DOS sobre el cual ejecutes tu programa va a correr en modo virtual, no en modo real, por lo que me imgino que al intentar saltar a una dirección fuera de tu espacio de direcciones vas a obtener una excepción 13.

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: reset en asm
« Respuesta #5 en: Viernes 7 de Noviembre de 2003, 17:04 »
0
Una aclaracion sobre la direccion
si CS=0FFFFH e IP=0H
entonces la instruccion siguiente a ejcutarse estara en la direccion:
CS:IP=0FFFF0H; y no 0FFFFH

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: reset en asm
« Respuesta #6 en: Sábado 8 de Noviembre de 2003, 03:38 »
0
ya hice el programa y no me funciona en win98, haber si lo pruevas en win95 quin sabe, lo mas seguro es que tampoco funcione.



Aqui adjunto el codigo fuente
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Astor

  • Miembro MUY activo
  • ***
  • Mensajes: 112
    • Ver Perfil
Re: reset en asm
« Respuesta #7 en: Domingo 9 de Noviembre de 2003, 23:09 »
0
Citar
entonces la instruccion siguiente a ejcutarse estara en la direccion:
CS:IP=0FFFF0H; y no 0FFFFH


Y ? si exactamente tiene que estar en 0xFFFF0.

 
Citar
ya hice el programa y no me funciona en win98


Vos lees todos los post ? :think:
Probaste con leer el Manual de Intel acerca del modo virtual ?

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
reset en asm
« Respuesta #8 en: Lunes 10 de Noviembre de 2003, 04:00 »
0
me baje recien algunos manuales de Intel, pero no se si es sobre modo virtual, sobre modo virtual y modo protegido aun me he resistido a entrar en este campo que me parece un poco complicado, quieciera conocer un poco mas sobre lo que pse puede hacer en modo real antes de entrar en eso otros asuntos.

Y sobre assembler me considero un fanatico, aunque me falta mucho por aprender.