A minimal x86 bootloader written in Assembly.
This project is part of my low-level programming journey and is designed to help me understand how the PC boot process works, from BIOS to Real Mode execution.
- Written in x86 Assembly (NASM)
- Boots in 16-bit Real Mode
- Uses BIOS interrupt
0x10for screen output - Prints a simple message to the screen
- Compatible with QEMU
- Educational project
This project is built to explore and understand:
- The PC boot process
- BIOS services
- x86 Real Mode programming
- Memory layout during boot
- Bootloader fundamentals
- 🇬🇧 English: Building a Bootloader from Scratch
- 🇮🇷 Persian: اولین تجربه من در دنیای Low-Level Programming؛ ساخت اولین Bootloader
simple-bootloader/
├── src/
│ └── boot.asm
└── README.md
Follow these steps to build and run the project on your local machine.
Install the required tools:
sudo apt update
sudo apt install nasm qemu-system-x86git clone https://github.com/Nebez-Berzency/simple-bootloader.git
cd simple-bootloaderCompile the bootloader using NASM:
nasm -f bin src/boot.asm -o bin/boot.binBoot the generated binary with QEMU:
qemu-system-x86_64 -drive format=raw,file=bin/boot.bin- Boot from BIOS
- Print text using BIOS interrupt
0x10 - Print colored text
- Handle keyboard input
- Explore additional BIOS interrupts
Copyright (c) 2026 Nebez Berzency
Licensed under the MIT License.
Feel free to use, modify, and learn from this project.
Keep coding. Keep building. 🚀