آموزش نوشتن اولین بوت لودر

یک بوت لودر باید خصوصیات زیر را داشته باشد
1)اندازه آن در نهایت 512 بایت باشد
2)پایان آن به علامت 55 AA می رسد
3)از آدرس حافظه 7C00 شروع می شود
4)برنامه ای بسیار کوچک است و سریع لود می شود
تا قسمت دوم یعنی برنامه هسته جهت یافتن سیستم عامل را لود کند

برنامه های مورد نیاز
1-اسمبلر
2-برنامه کپی جهت نصب بوت لودر
من از اسمبلر اوپن سورس nasm استفاده و جهت نصب از برنامه partcopy استفاده می کنم

[BITS 16]
این خط جهت راهنمایی اسمبلر برای ساختن برنامه های 16 بیتی است
[ORG 0x7C00]

همان طور که قبلاْ اشاره شد از آدرس حافظه 7C00 شروع می شود
; Main program
main:
شروع برنامه
mov ax,0x0000
mov ds,ax

مقدار دهی سگمنت داده ها و مشخص کردن محل داده ها.
call WriteStr
جهت نوشتن پیغام در خروجی

WriteStr:
برچسب شروع روال
mov ah,0x0E
تابع جهت نمایش کارکتر
mov bh,0x00
شماره صفحه
mov bl,0x07


.nextchar


lodsb
جهت خواندن بلوک رشته
or al,al

jz .return

int 0x10
فراخوانی وقفه 10 بایوس
jmp .nextchar
پرش جهت خواندن کارکتر بعدی
.return
برچسب جهت کنترل پایان روال
ret
پایان روال
HelloWorld db 'Hello World',13,10,0
متغییر جهت متن پیغام
times 510-($-$$) db 0
پر کردن سکتور ها با مقدار 0
dw 0xAA55
علامت 55 AA جهت پایان فایل بوت لودر


کامپایل با دستور
nasm yourbootsector.asm -f bin -o bootsec.bin

اما کپی کردن به بوت سکتور فلاپی

partcopy bootsec.bin 0 200 -f0
پایان جلسه 1
ادامه دارد