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

[0] Índice de Mensajes

Ir a la versión completa