Programación General => ASM (Ensamblador) => Mensaje iniciado por: Seraph en Martes 24 de Mayo de 2011, 20:47
Título: mi primer bootloader - orientacion
Publicado por: Seraph en Martes 24 de Mayo de 2011, 20:47
Hola que tal, me estoy iniciando en el mundo de ASM y los sistemas operativos, estuve leyendo por internet y digamos que escribí este bootloader en base a varios ejemplos de internet, al parecer todo esta correcto, si imprime la cadena etc. ahora tengo la duda de por donde continuar, me gustaría crear un mini kernel que imprima alguna cadena, pero este no es el problema porque ya lo tengo hecho, el detalle es que no se cómo saltar del bootloader al kernel. Por ahora tengo los dos archivos independientes bootloader.bin y kernel.bin
Les dejo el codigo del bootloader.bin (cualquier consejo por favor decirme):
Código: ASM
BITS 16
inicio:
movax,07C0h
addax,288
movss,ax
movsp,4096
movax,07C0h
movds,ax
movsi, cadena_texto
call imprimir_cadena
jmp $
cadena_texto db'Mi primer bootloader!',0
imprimir_cadena:
movah,0Eh
.repetir:
lodsb
cmpal,0
je.terminar
int10h
jmp.repetir
.terminar:
ret
times 510-($-$$)db0
dw0xAA55
Estoy usando NASM y Qemu, sobre window XP, desde ya les agradezco.
...
Título: Re: mi primer bootloader - orientacion
Publicado por: Enko en Sábado 18 de Junio de 2011, 23:51
busca info sobre la interupcion 13 (int 0x13) Es la que lee bloques de datos desde el disquet y los carga a la memoria.
Una vez cargado a la memoria el kernel, saltas hacia la direccion donde cargaste el kernel.
Título: Re: mi primer bootloader - orientacion
Publicado por: Seraph en Martes 21 de Junio de 2011, 01:46
Hola, que tal, creí que ya no estaba activa esta parte del foro. gracias por responder, estuve leyendo y probando algunos códigos que encontré por la red y he logrado crear el sector de arranque del disquete que lo que hace es recorrer la raíz del FAT12(disquete) y buscar el archivo KERNEL.BIN, ya lo lee y todo, seguí leyendo y al parecer lo siguiente es pasar a modo protegido pero la verdad que no tengo ni idea, a parte que por lo que leí, al pasar a modo protegido tienes que crear tus propios drivers de video, teclado etc., alguna ¿orientación al respecto?.
Título: Re: mi primer bootloader - orientacion
Publicado por: Enko en Martes 21 de Junio de 2011, 06:31
Ultimamente esta parte del foro se ve inactiva. Yo entro muy de vez en cuando.
La PC arranca en modo REAL. 16 bit, con sus limitaciones. Pero la BIOS corre en modo REAL, por ende, estando en modo REAL tienes acceso a todas las interrupciones de la BIOS.
El modo PROTEGIDO, 32 bit, en el que corren la mayoria de los SO, tiene un monton de ventajas, multihilo, direcciona 4gb de memoria, distintos niveles de privilegios etc.... Para una buena explicacion, no hay nada mejor que leer intel x86 architecture manual Estan en la pagina de INTEL. Lo que si ocurre, es que las interrupciones de la BIOS ya no sirven, porque estas ulitmas solo funcionan en modo REAL.
Asi que la parte de armar tus propios drivers, en si es cierto, pero no te creas que en un driver de teclado es dificil de hacer, es tan solo comunicarte con el dispositivo usando IN/OUT. Y para la salida en pantalla, es tan solo modificar una matriz de 80x25 que se encuentra en el espacio de memoria de video. Estando en modo texto claro.
una buen lugar para que busques referecias, es osdev.org.