Bootloader en Ensamblador
Publicado: Dom, 01 Mar 2026, 22:17
Aqui les dejo un bootloader mínimo en ensamblador x86 (16-bit) que puede colocarse en el sector de arranque (MBR, 512 bytes). Al iniciar el equipo desde ese medio, muestra un mensaje en pantalla usando la BIOS y se queda en un bucle.
Es código educativo. Escríbelo en una imagen de disco/USB de prueba dentro de una VM (por ejemplo, QEMU/VirtualBox), no en tu disco real.
Es código educativo. Escríbelo en una imagen de disco/USB de prueba dentro de una VM (por ejemplo, QEMU/VirtualBox), no en tu disco real.
Código: Seleccionar todo
; Bootloader mínimo x86 (16-bit real mode)
; Ensamblar con: nasm -f bin boot.asm -o boot.bin
org 0x7C00 ; Dirección donde la BIOS carga el boot sector
start:
cli ; Deshabilitar interrupciones
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov sp, 0x7C00 ; Inicializar stack
sti ; Habilitar interrupciones
mov si, message ; SI apunta al mensaje
print_loop:
lodsb ; AL = [SI], SI++
cmp al, 0
je hang ; Si es 0 (fin de cadena), terminar
mov ah, 0x0E ; Función teletipo BIOS
mov bh, 0x00 ; Página 0
mov bl, 0x07 ; Color gris claro
int 0x10 ; Interrupción de video
jmp print_loop
hang:
jmp $ ; Bucle infinito
message db "Bootloader cargado correctamente!", 0
times 510 - ($ - $$) db 0 ; Rellenar hasta 510 bytes
dw 0xAA55 ; Firma de arranque obligatoria