Skip to content

Lab 1-1 - Boot Loader

How Bootloader works

Create Github Codespace

  • Directorylab1
    • boot.asm
  1. สร้าง folder ที่ชื่อว่า lab1
Terminal window
mkdir lab1
  1. เข้าไปใน folder lab1
Terminal window
cd lab1
  1. สร้างไฟล์ boot.asm
Terminal window
touch boot.asm
  1. copy โค๊ดตัวอย่างลงไปใน boot.asm
[org 0x7c00]
mov ah, 0x0e ; BIOS Teletype function (พิมพ์อักษรออกจอ)
mov al, 'H'
int 0x10
mov al, 'I'
int 0x10
sleep:
hlt
jmp sleep
times 510-($-$$) db 0
dw 0xaa55
  1. compile boot.asm ไปเป็น boot.img
Terminal window
nasm -f bin boot.asm -o boot.img
  1. run boot.img ผ่าน QEMU
Terminal window
qemu-system-x86_64 -fda boot.img -nographic -serial mon:stdio
  1. จะได้ข้อความ HI ออกมาทางหน้าจอ
Terminal window
SeaBIOS (version 1.17.0-debian-1.17.0-1ubuntu1)
iPXE (https://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+06FC8E00+06F08E00 CA00
Booting from Hard Disk...
Boot failed: could not read the boot disk
Booting from Floppy...
HI
  1. CTRL + a + x เพื่อทำการออกจาก QEMU