# برنامه نویسی سطح پایین > برنامه نویسی اسمبلی خانواده x86 >  تفاوت ساختار فایل  exe و com

## mona_z

میخواستم بدونم با چه نرم افزاری میتونم کد فایلهای exe و com  رو ببینم منظورم ساختارشونه

----------


## vcldeveloper

با یک Hex Editor. 
فایل COM یک فایل حاوی دستورات ماشین هست که از کد منبع به کد ماشین تبدیل شده، و هیچ Header یا داده اضافه ایی نداره. طول این مدل از فایل ها حداکثر به اندازه یک سگمنت از حافظه هست. این نوع از فایل مربوط به سیستم عامل DOS هست، ولی همچنان در سایر سیستم عامل ها هم پشتیبانی میشه:
http://en.wikipedia.org/wiki/COM_file

فایل EXE فقط شامل دستورات ماشین نیست، بلکه دارای یک ساختار داده شامل داده های مختلفی مثل Import Table، Export Table، و غیره هست. این نوع از فایل مختص سیستم عامل ویندوز هست. برای مطالعه ساختار فایل EXE باید درباره Portable Executable File Format تحقیق کنید:
http://msdn.microsoft.com/en-us/magazine/cc301805.aspx

----------


## tdkhakpur

براي لود شدن يك برنامه com بايد كل فايل را از ديسيك خواند و در جايي مناسب از حافظه قرار داد سپس كافيست cs  را به ابتداي حافظه فوق و ip را به آفست 100h انتقال داد . اين تئوري اجراي يك برنامه com ميباشد.
ولي در مورد exe‌ كار كمي متفاوت بايد باشد يعني شما براي هر يك از سگمنتها يك جاي مشخص از حافظه برابر با مقداري كه در هدر فايل exe معين شده  است رزرو كنيد و داده ها را از فايل (كه مكان ان هم در هدر فايل تعيين شده است) خوانده و در همان نقطه رزرو شده قرار دهيد و اين كار براي همه سگمنتها به روش فوق انجام بديد.
ولي در مورد جهت حركت براي اجرا بايد عرض كنم كه شروع هر سگمت نقطه start ان سگمنت محسوب ميشود.

----------


## xxxxx_xxxxx

*تفاوت برنامه های exe و com*

----------

