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