Programación General > ASM (Ensamblador)
mi primer bootloader - orientacion
(1/1)
Seraph:
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: mov ax, 07C0h add ax, 288 mov ss, ax mov sp, 4096 mov ax, 07C0h mov ds, ax mov si, cadena_texto call imprimir_cadena jmp $ cadena_texto db 'Mi primer bootloader!', 0 imprimir_cadena: mov ah, 0Eh.repetir: lodsb cmp al, 0 je .terminar int 10h jmp .repetir.terminar: ret times 510-($-$$) db 0 dw 0xAA55
Estoy usando NASM y Qemu, sobre window XP, desde ya les agradezco.
...
Enko:
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.
Seraph:
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?.
Enko:
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.
Saludos.
Navegación
Ir a la versión completa