به نام خدایی که باینری را آفرید
برنامه نویسی با هگز ادیتور
برای اینکه بتوانیم مستقیما با زبان ماشین یعنی 0 و 1 برنامه نویسی کنیم می توانیم از هر نوع hex editor دلخواه استفاده نماییم . یعنی کاملا آزاد هستیم و دستمان باز است و حق انتخاب داریم و این یعنی انعطاف پذیری و قدرت .
چنین امتیازی در هیچکدام از زبانهای دیگر ؛ وجود ندارد .
خب ، حالا من فرض می کنم که شما یک hex editor را مطابق با میل و سلیقه ی خودتان انتخاب کرده اید .
با این فرض ؛ حالا وقت آن رسیده که قدری کد زبان ماشین بنویسیم
هگز ادیتور را اجرا کنید
در ستون وسط هگز ادیتور و در آدرس 0000000 کد زیر را که کد زبان ماشین است با دست تایپ کنید :
4D5A
خب حالا به ستون سمت راست هگز ادیتور نگاه کنید . چه می بینید ؟؟
بله ! پاسخ تان درست است : MZ
تقریبا تمام کاربران کامپیوتر در جهان با این عبارت MZ آشنا هستند و آنرا می شناسند .
این عبارت ؛ کد جادویی و امضای DOS HEADER می باشد .
اگر این عبارت را حذف یا ویرایش کنیم نرم افزار اجرا نمی شود .
بنابراین هرگز عبارت MZ را حذف یا ویرایش نکنید وگرنه نرم افزار ساخته نمی شود یا اگر هم ساخته شود هرگز اجرا نمی شود .
عبارت MZ مخفف نام آقای مارک زبیکوسکی می باشد . مارک زبیکوسکی معمار سیستم عامل DOS بود .
شرکت مایکروسافت ؛ به احترام ایشان ؛ نام و نام خانوادگی وی را بصورت مخفف و بعنوان عدد جادویی و امضای سیستم عامل های داس و ویندوز تعیین کرد که تا به امروز نیز در تمام نسخه های سیستم عامل ویندوز و نرم افزارها و درایورهای ویندوز شاهد حضور این عبارت هستیم .
این امضا درواقع به کاربر نشان می دهد که درحال استفاده از ویندوز یا داس یا نرم افزارهای وابسته به این دو سیستم عامل ؛ می باشد .
در واقع ، این عبارت: یک سند و یک گواهی و یک استاندارد بین المللی محسوب می شود .
+
فایل را با یک نام و پسوند دلخواه مثلا me.exe بر روی یکی از درایوهای ویندوز ، ذخیره نمایید .
قرار است به مرور زمان و به آهستگی و بصورت دستی و بایت به بایت و البته با کمک یک اسمبلر دستی ؛ یک نرم افزار ویندوزی را بسازیم و روی ویندوز اجرا کنیم .
+
در درس بعدی سایر بایتهای تشکیل دهنده ی نرم افزارهای ویندوز را معرفی می کنم .
در هر جلسه سعی می کنم فقط یکی دو کد زبان ماشین را معرفی نمایم .
نکته : برای تسهیل در کار و صرفه جویی در وقت و جلوگیری از بروز خطا ؛ سعی می کنم از مبنای هگزادسیمال زبان ماشین استفاده نمایم تا نرم افزار ، هرچه سریعتر ساخته و اجرا شود .
زبان ماشین ؛ کامپایلر و اسمبلر و لینکر ندارد و تمام پروسه ی این زبان ؛ کاملا دستی است .
همه چیز با دست انجام می شود .
+
در درسهای بعدی کدهای بعدی که از آدرس 000000001 شروع می شوند را به مرور زمان معرفی خواهم کرد . انشاا...