Hola, soy nuevo en el ASM.
Hice un bootstrap que corre desde el floppy y entra en modo protegido, luego algo de terminal de texto etc. Nada de sistemas operativos, simple bootstrap.
Luego volví a escribir e bootstrap para un CD de arranque y se me reinicia continuamente al iniciar.
Estaba comentando el codigo hasta el punto en que funcione. Y el punto en que no se me reinicia, es el justo despues de cargar el EAX con el bit de PE puesto a uno en el registro de CR0, y justo antes del salto largo al codigo protegido.
Sospecho que la directiva [ORG 0x7C0] no va bien, porque si cargo programas que no hacen al nasm calcular direcciones en memoria a partir de marcadores, va bien y los programas se ejecutan como lo esperado.
Me gustaria conocer alguna forma de determinar dónde se ha cargado el programa de arranque y poder usar lo luego en las directivas de nasm para calcular mis saltos
Ahora voy a intentar imprimir el IP por pantalla, pero aun si me sirviera, no seria una solucion automatizada. Se le ocurre a alguien alguna solucion mas comoda?
Gracias!
Una cosa mas:
Tengo la directiva del [ORG ...] en la mitad del codigo y no sé si eso cuenta para nasm como el principio de todo el codigo sin importar la posicion del [ORG..], ó el ORG toma efecto en el lugar exacto donde se declara la directiva.