rendered paste body; bootloader.s
[BITS 16] ; Emit 16bit code
[ORG 0x7C00] ; The BIOS loads the boatloader at offset 0x7C00
call clear_screen
call print_string
cli ; Disable interrupts
hlt ; Halt the processor
print_string:
mov al, 1
xor bh, bh
mov bl, 07h
mov cx, hello_end - hello
xor dx, dx
mov bp, hello
mov ah, 13h
int 10h
ret
clear_screen:
xor al, al
mov bh, 07h
xor cx, cx
mov dh, 25
mov dl, 80
mov ah, 07h
int 10h
xor dx, dx
xor bh, bh
mov ah, 2
int 10h
ret
hello db "Hello World!"
hello_end:
times 510-($-$$) db 0 ; Fill the remaining 510 bytes with 0
dw 0xAA55 ; End with AA55 otherwise the BIOS won't recognise this as a bootsector