1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| ; bootloader.asm - minimal boot sector ; assemble: nasm -f bin bootloader.asm -o boot.bin
BITS 16 ORG 0x7C00
start: cli xor ax, ax mov ds, ax mov es, ax mov ss, ax mov sp, 0x7C00 ; 简单栈:放在自身下方 sti
mov si, msg .print: lodsb ; AL = [DS:SI], SI++ test al, al jz .hang mov ah, 0x0E ; teletype 输出 mov bh, 0x00 mov bl, 0x07 ; 灰字黑底 int 0x10 jmp .print
.hang: jmp .hang
msg db "Hello from bootloader!", 0
; 填充到 510 字节 times 510-($-$$) db 0 dw 0xAA55 ; boot signature
|