آموزش نوشتن اولین بوت لودر
یک بوت لودر باید خصوصیات زیر را داشته باشد
1)اندازه آن در نهایت 512 بایت باشد
2)پایان آن به علامت 55 AA می رسد
3)از آدرس حافظه 7C00 شروع می شود
4)برنامه ای بسیار کوچک است و سریع لود می شود
تا قسمت دوم یعنی برنامه هسته جهت یافتن سیستم عامل را لود کند
برنامه های مورد نیاز
1-اسمبلر
2-برنامه کپی جهت نصب بوت لودر
من از اسمبلر اوپن سورس nasm استفاده و جهت نصب از برنامه partcopy استفاده می کنم
[BITS 16]
این خط جهت راهنمایی اسمبلر برای ساختن برنامه های 16 بیتی است
همان طور که قبلاْ اشاره شد از آدرس حافظه 7C00 شروع می شود
شروع برنامه
مقدار دهی سگمنت داده ها و مشخص کردن محل داده ها.
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
ادامه دارد