چیزی در این مورد جایی ندیدم که خروجی کامپایلر C کد های زبان ماشین پردازنده های خانواده خاصی مثل x86 باشه ولی مستقل از سیستم عامل باشه.
خروجی exe یا com یا obj کامپایلر هیچوقت کاملا مستقل از سیستم عامل نیست، چون این وظیفه سیستم عامل خواهد بود که فایل اجرایی رو از دیسک بخونه، بصورت مناسب اجرا در حافظه قرار بده و آدرس های نسبی رو به مطلق تبدیل کنه و ...
و روی کامپایلری که همواره فایل اجرایی exe تولید می کنه نمی توانید حساب باز کنید، چون کد های ماشینی که در فایل اجرایی ذخیره میکنه آدرس نسبی دارن که قبل اجرا توسط سیستم عامل تغییر خواهد کرد.
فایل exe خروجی مستقل از اینکه با چه کامپایلر و چه زبانی نوشته شده باشه باید قبل از اجرا توسط سیستم عامل پردازش بشه، حتی اگه از هیچگونه کتابخانه ای در کد اجراییش استفاده نشده باشه.
مزیت com به این نیست که مستقل از سیستم عامل باشه، استخراج کد ماشین ازش راحت ئه.
از VESA BIOS Extension استفاده خواهید کرد، از protected mode بخوبی پشتیبانی می کنه. اینم مستنداتش :
VESA BIOS Extension 3.0