x86 Boot Loader Project | NASM Assembly Code | Micro Processor & Assembly Language

preview_player
Показать описание
This is a microprocessor and assembly language course project only.

This code is written in x86 assembly language and serves as a bootloader for an operating system. It starts at address 0x7C00 and sets the instruction size to 16 bits. It has several messages for the user and functions for printing messages, clearing the screen, and delaying execution. The main function displays the bootload message, waits for user input, and either reboots the system or loads the operating system. The code ends with a filler of 0xAA55 and 510 bytes of 0's to fill the boot sector.
Рекомендации по теме
Комментарии
Автор

Click here to jump to the result : 6:54

This video is not complete as we did not show how to run the binary file on a floppy disk image. We've done that and i might upload a video about it.

zainkhalid
Автор

Incredible project! Proof of discipline. Can I contact you?

ycemilk
Автор

I like to use int 10h ax=1110h for user character extended ASCII 128 - 255 or ASCII 0 -127. Example: 8x16 font size

@echo off
REM Panda.bat
echo a>tmp.deb
echo mov ax, 1110>>tmp.deb
echo mov bp, 118>>tmp.deb
echo mov cx, 8>>tmp.deb
echo mov dx, 41>>tmp.deb
echo xor bl, bl>>tmp.deb
echo mov bh, 10>>tmp.deb
echo int 10>>tmp.deb
echo ret>>tmp.deb
echo org 0118>>tmp.deb
echo DB 0, 0, 1, 7, 1f, 3f, 7f, 7f, 7f, 7e, 7c, 7c, 7c, 7c, 7c, 7c>>tmp.deb
echo DB 0, 3f, ff, ff, ff, ff, ff, ff, 1f, f, 7, 7, 7, 7, 7, 7>>tmp.deb
echo DB 0, fc, ff, ff, ff, ff, ff, ff, f8, f0, e0, e0, e0, e0, e0, e0>>tmp.deb
echo DB 0, 0, 80, e0, f8, fc, fe, fe, fe, 7e, 3e, 3e, 3e, 3e, 3e, 3e>>tmp.deb
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM 00001111 11110000
REM
REM
REM
REM
REM
REM
REM
echo DB 7c, 7c, 7c, 7c, 7c, 3e, 3f, 3f, 1f, 7, 3, 1, 0, 0, 0, 0>>tmp.deb
echo DB 7, 7, 7, 7, 7, 7, 1f, fe, fc, fc, ff, c0, f0, 7f, f, 0>>tmp.deb
echo DB e0, e0, e0, e0, e0, e0, f8, 7f, 3f, 3f, ff, 3, f, fe, f0, 0>>tmp.deb
echo DB 3e, 3e, 3e, 3e, 3e, 7c, fc, fc, f8, e0, c0, 80, 0, 0, 0, 0>>tmp.deb
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM
REM 11110000 00001111
REM
REM 00001111 11110000
REM
REM
echo.>>tmp.deb
echo n Panda.com>>tmp.deb
echo rcx>>tmp.deb
echo 98>>tmp.deb
echo wcs:100>>tmp.deb
echo q>>tmp.deb
debug<tmp.deb>deb.inf
del tmp.deb
Panda.com
del Panda.com
echo ABCD
echo EFGH

maxmuster