به نام خدایی که باینری را آفرید 



برنامه نویسی با هگز ادیتور 


برای اینکه بتوانیم مستقیما با زبان ماشین یعنی 0 و 1 برنامه نویسی کنیم می توانیم از هر نوع  hex editor دلخواه  استفاده  نماییم . یعنی کاملا آزاد هستیم و دستمان باز است و حق انتخاب داریم و این یعنی انعطاف پذیری و قدرت . 


چنین امتیازی در هیچکدام از زبانهای دیگر ؛  وجود ندارد . 



خب ، حالا  من فرض می کنم که شما یک  hex editor را مطابق با میل و سلیقه ی خودتان انتخاب کرده اید . 



با این فرض ؛ حالا وقت آن رسیده که قدری کد زبان ماشین  بنویسیم 


هگز ادیتور را اجرا کنید 


در ستون وسط هگز ادیتور و در  آدرس    0000000  کد زیر را که کد زبان ماشین است با دست تایپ کنید : 


4D5A 



خب حالا به ستون سمت راست هگز ادیتور نگاه کنید . چه می بینید ؟؟ 



بله !   پاسخ تان درست است :  MZ 


 تقریبا تمام کاربران  کامپیوتر در جهان  با این عبارت  MZ  آشنا هستند و آنرا می شناسند . 


این عبارت ؛ کد  جادویی و امضای DOS HEADER  می باشد . 


اگر این عبارت را حذف یا ویرایش کنیم  نرم افزار  اجرا نمی شود . 



بنابراین هرگز   عبارت  MZ را حذف یا ویرایش نکنید وگرنه نرم افزار ساخته نمی شود یا اگر هم ساخته شود  هرگز اجرا نمی شود . 


عبارت MZ  مخفف نام  آقای  مارک زبیکوسکی  می باشد . مارک زبیکوسکی  معمار سیستم عامل  DOS  بود . 


شرکت مایکروسافت ؛ به احترام ایشان ؛   نام و نام خانوادگی وی را بصورت مخفف و بعنوان عدد جادویی و امضای سیستم عامل های داس و ویندوز  تعیین کرد که تا به امروز نیز در تمام نسخه های سیستم عامل ویندوز و نرم افزارها و درایورهای ویندوز  شاهد حضور این عبارت هستیم . 


این امضا درواقع به کاربر نشان می دهد که درحال استفاده از ویندوز یا داس یا نرم افزارهای وابسته به این دو سیستم عامل ؛ می باشد . 


در واقع ،  این عبارت:  یک سند و یک گواهی و یک استاندارد بین المللی محسوب می شود . 


فایل را با یک نام  و پسوند دلخواه مثلا me.exe    بر روی یکی از درایوهای ویندوز  ، ذخیره نمایید . 


قرار است به مرور زمان و به آهستگی و بصورت دستی و بایت به بایت و البته با کمک یک اسمبلر دستی ؛  یک نرم افزار ویندوزی را بسازیم و روی ویندوز  اجرا کنیم . 


+

در درس بعدی سایر بایتهای تشکیل دهنده ی نرم افزارهای ویندوز را معرفی می کنم . 



در هر جلسه  سعی می کنم  فقط  یکی دو  کد زبان ماشین را معرفی نمایم . 



نکته : برای تسهیل در کار و  صرفه جویی در وقت و جلوگیری  از بروز خطا ؛  سعی می کنم از مبنای   هگزادسیمال زبان ماشین  استفاده نمایم تا نرم افزار ، هرچه سریعتر ساخته و اجرا شود .


زبان ماشین ؛ کامپایلر و اسمبلر و لینکر  ندارد و تمام پروسه ی این زبان  ؛ کاملا دستی است . 


همه چیز با دست انجام می شود . 



در درسهای بعدی کدهای بعدی که از آدرس  000000001  شروع می شوند  را به مرور زمان  معرفی خواهم کرد . انشاا...