مباحث آموزش زبان اسمبلی
به نام خدا
مباحث آموزش زبان اسمبلی
نویسنده : توماس گریستار -Tomasz Grysztar-.
طراح و سازنده ی زبان اسمبلی Fasm ( فلت اسمبلر) .
در این پست قصد دارم لینک مربوط به مقالات و نوشته های عمومی و کلی که آقای توماس گریستار-Tomasz Grysztar- خالق اسمبلر Fasm در مورد زبان برنامه نویسی اسمبلی نوشته است را به شما معرفی کنم .
نکته مهم :
در انجمن فلت اسمبلر ، برای مشاهده ی لینک ها و دانلود فایلها ، هیچ نیازی به عضویت نیست و شما بعنوان کاربر میهمان می توانید به تمام لینک ها وارد شوید و تمام فایلها را نیز دانلود نمایید .
اما برای پرسیدن سوال و یا تولید یک تاپیک جدید ، باید حتما عضو این انجمن شوید .
لطفا قوانین انجمن فلت اسمبلر را مطالعه و رعایت کنید تا هیچ مشکلی پیش نیاید . متشکرم .
نکته ی جالب :
در انجمن فلت اسمبلر ، هر جا که لغت Download را در سمت راست صفحه دیدید ، سریعا روی دکمه ی مربوط به آن کلیک کنید تا فایل مربوطه دانلود شود !!
این فایل ها می توانند حاوی کد منبع یا باینری باشند و بهرحال بسیار مفید هستند و می توانند در فهم کامل زبان اسمبلی به شما کمک کنند .
بنابراین شما بعنوان کاربر میهمان و بدون نیاز به ثبت نام ، می توانید تمام این فایلهای مفید را دانلود نمایید و زبان اسمبلی را با کمک همین فایلها یاد بگیرید .
من خودم اکثریت این فایلها را بعنوان کاربر میهمان ، و برای فهم بهتر زبان اسمبلی ، دانلود کرده ام و هرگز عضو این انجمن نشدم زیرا واقعا نیازی به اینکار نبود !!!
عنوان تاپیک :
Assembly
موضوع :
معرفی کلی زبان برنامه نویسی اسمبلی
لینک مربوطه :
https://board.flatassembler.net/forum.php?f=27
تاپیکهای زیرمجموعه این لینک :
Learning binary file formats
https://board.flatassembler.net/topic.php?t=20690
New version of TetrOS
لینک مربوط به معرفی نسخه ی جدید سیستم عامل تتروس :
https://board.flatassembler.net/topic.php?t=21254
معرفی نسخه ی جدید سیستم عامل تتروس -TetrOS-توسط آقای توماس گریستار
نکته :
آقای توماس گریستار یک ریاضیدان اهل لهستان می باشد که زبان اسمبلی را بر اساس زبان اسمبلی توربو پاسکال ، یاد گرفته است و سپس برای ادامه ی تحصیل ، بجای رشته مهندسی کامپیوتر ، رشته ریاضی را انتخاب کرده است .
سپس ، اسمبلر Fasm را در سال 1999 میلادی و بر اساس اسمبلر قدیمی و تجاری Tasm ( توربو اسمبلر ) محصول شرکت بورلند ، طراحی کرد و ساخت .
( اسمبلر Tasm محصول شرکت بورلند ، از طرف شرکت خبیث و بدذات و حسود مایکروسافت ، بعنوان ویروس معرفی شد و توسط این شرکت و سایر شرکای مایکروسافت نابود گردید . اما من بالاخره توانستم این اسمبلر بسیار قدیمی را پیدا و دانلود کنم . اما نیاز به رجیستر شدن دارد !!!)
سپس آقای توماس گریستار ، بازی معروف تتریس را از اول تا آخر با زبان اسمبلی بازنویسی کرد و قصد داشت سیستم عاملی جدید بنام تتروس را بسازد که ساخت
البته اول از همه ، Fasm را ساخت و سپس به رویای اولیه اش یعنی ساخت سیستم عامل تتروس برگشت و این سیستم عامل را با کمک Fasm ساخت
او بعدا همین تتروس را به زبان اسمبلی Fasm تبدیل کرد !!
یک داستان مبهم و جالب از ساخته شدن همزمان یک اسمبلر و یک سیستم عامل توسط یک ریاضیدان !!
الان از لینک بالا ، می توانید نسخه ی جدید سیستم عامل تتروس ( براساس بازی معروف تتریس ) را دانلود نمایید .
نکته مهم:
برای مشاهده ی کد منبع فایل ها در این انجمن ، لازم است با ماوس ، روی لبه ی سمت راست کادر متنی مربوطه کلیک کرده و به سمت پایین ، اسکرول کنید .
اینجا نیز باید اسکرول کنید تا تمام کد منبع این سیستم عامل را در همان آدرس بالا ، بصورت آنلاین مشاهده نمایید .
البته در بسیاری از موارد ، فایل حاوی باینری و کد منبع را می توانید از طریق کلیک روی دکمه ی Download که در سمت راست صفحه قرار دارد ، دانلود نمایید و بعدا سرفرصت و بدون نیاز به اینترنت و بصورت کاملا آفلاین ، کد منبع و باینری نرم افزارها و سیستم عاملهای ساخته شده با زبان اسمبلی Fasm را مشاهده و مطالعه نمایید .
این سیستم عامل بطور کامل و صدر درصد با زبان اسمبلی Fasm ساخته شده است !
نکته :
من در تلفظ لغات غیرفارسی ، براساس سلیقه ی شخصی خودم رفتار می کنم
در نتیجه عبارت TetrOS را بصورت تتروس تلفظ می نمایم زیرا از کلمات کوتاه ، خوشم می آید و لذت می برم !!
ادامه ی تاپیکهای زیر مجموعه ی این لینک:
Processor fuzzing
قاطی کردن پردازنده :
آدرس مربوطه :
https://board.flatassembler.net/topic.php?t=20107
Notes copied from Twitter
نکات کپی شده از توویتر
آدرس مربوطه :
https://board.flatassembler.net/topic.php?t=21901
Unused foreword for an assembly book
فوروارد بلااستفاده برای یک کتاب اسمبلی :
https://board.flatassembler.net/topic.php?t=21553
Division by multiplication - revisited
https://board.flatassembler.net/topic.php?t=20099
Snippets for detection of 32-bit/64-bit code segment
https://board.flatassembler.net/topic.php?t=20208
My articles in the Paged Out! magazine
https://board.flatassembler.net/topic.php?t=21162
Types of multi-pass assembly
https://board.flatassembler.net/topic.php?t=20249
Pitfalls of optimistic multi-pass assembly
https://board.flatassembler.net/topic.php?t=21060
unREAL mode
https://board.flatassembler.net/topic.php?t=11940
Comments on AVX implementation
https://board.flatassembler.net/topic.php?t=21344
SSE5 vs AVX
https://board.flatassembler.net/topic.php?t=9823
پایان بخش Assembly از انجمن فلت اسمبلر
در پست بعدی ، لینک های مربوط به سایر بخشهای انجمن فلت اسمبلر را می آورم !!
نکته :
من زبان انگلیسی ام خیلی ضعیف است . بنابراین زحمت ترجمه متون انگلیسی این انجمن را بر دوش خودتان می گذارم !!
من فقط لینک می دهم و هیچ کار دیگری انجام نمی دهم .
امیدوارم در این پست ، توضیحات ضروری و کافی را بیان کرده باشم و نیازی به تکرار مکررات نباشد .
در پستهای بعدی ، بجز لینک دهی ، هیچ کار دیگری حتی ترجمه ی عنوان را انجام نمی دهم !
آخرین تصمیمگیری قطعی و نهایی:
تمرکز کامل و همیشگی روی زبان برنامه نویسی اسمبلی Fasm و به منظور احیای زبان برنامه نویسی اسمبلی و نابودسازی تمام زبانهای برنامه نویسی سطح بالا !!
من با کمک زبان اسمبلی ، تمام زبانهای سطح بالا را نابود خواهم کرد .
زیرا تمام زبانهای سطح بالا ، ماتریکس و زندان طلایی و قفس محسوب می شوند و دشمن استقلال و آزادی و بصیرت می باشند
تمام زبانهای برنامه نویسی سطح بالا ، دشمن شما کاربرها و البته دوست سازمانهای امنیتی و جاسوسی هستند .
بنابراین مرگ زبانهای سطح بالا یعنی مرگ سازمانهای جاسوسی و تروریستی از قبیل سازمان سیا و سازمان موساد و ....
بنابراین لطفا از مرگ زبانهای سطح بالا ناراحت و عصبانی نشوید زیرا این جنگ کاملا به نفع شما می باشد و شما را از شر این تروریستهایی که حامی زبانهای سطح بالا هستند نجات می دهد .
فراموش نکنید که ما در حال جنگ جهانی سوم هستیم و جنگ جهانی سوم یعنی جنگ نرم و جنگ نرم ابعاد بسیار وسیع و جهانی دارد که یکی از ابعادش ، جنگ بین زبانهای برنامه نویسی سطح بالا و زبانهای برنامه نویسی سطح پایین می باشد .
این اصلا توهم یا خواب و خیال نیست . این یک واقعیت دردناک است که شما از آن خبر ندارید .
من از طرف مقامات بالا دستور و ماموریت دارم که با احیای زبان برنامه نویسی اسمبلی ، به امپراتوری شیطانی و خبیث زبانهای سطح بالا و شرکتهای خبیث فناوری اطلاعات و مافیای حاکم بر دنیای فناوری اطلاعات و فراماسون ها و صهیونیست ها و تروریستها و دارک وب و اتکرها و مجرمان سایبری ، خاتمه دهم و این شیاطین و نیروهای اهریمنی را نابود کنم .
شاید این حرف به نظرتان یک شوخی یا جوک یا توهم باشد ، اما واقعیت است و من نمی توانم این واقعیت را بیش از این ، برایتان باز کنم .
زیرا محرمانه است .
همینقدر بدانید که من الان در حال جنگ با دشمن هستم .
پس قدر زبان اسمبلی را بدانید و ناسپاس نباشید و از نعمت این زبان به نفع خود و کشور و مردم استفاده کنید و دشمن را شکست دهید .
فراموش نکنید که زبان اسمبلی ، به هیچ شخص حقیقی یا حقوقی تعلق ندارد و هیچ کپی رایت بر روی آن نیست .
یعنی اینکه زبان اسمبلی یک زبان جهانی است و به تمام مردم جهان تعلق دارد و یک زبان کاملا آزاد است .
آزادی واقعی را در زبان اسمبلی پیدا کنید .
اگر قدرت و استقلال و آزادی و بصیرت و دانش و عظمت و هیبت و شکوه و جلال می خواهید ، سعی کنید فقط از زبان اسمبلی استفاده کنید و هرگز به سمت زبانهای شیطانی و اهریمنی ( زبانهای سطح بالا ) نروید .
با کمک همین زبان اسمبلی می توانید به عمر ابرقدرتهای ستمگر و ظالم و قلدر و دیکتاتور مثل آمریکا و انگلیس و اسرائیل و .... خاتمه دهید و برنده ی جنگ جهانی سوم شوید .
پایانی بر فلسفه ی زبان اسمبلی
آغازی بر ورود به دنیای فنی زبان اسمبلی
+
نکته :
من الان در گوشی هوشمند هستم و نمی توانم لینک بدهم . اما به محض ورود به کامپیوتر ؛ آدرس بالا را به لینک تبدیل می کنم .
آدرس بالا به تنهایی چندین تاپیک را پوشش می دهد که شاید بعدا در پستهای بعدی ؛ به تک تک این تاپیک ها لینک بدهم .
نکته :
اگر برای یک موضوع واحد و تنها ؛ چندین تاپیک ساخته شده باشد تمام آنها را زیر عنوان آن موضوع ؛ لینک خواهم کرد.
البته برای جلوگیری از ایجاد تاپیک های تو در تو و گیج کننده ؛ سعی می کنم فقط به تاپیک و موضوع اصلی لینک بدهم و فقط اگر واقعا ضروری باشد ؛ به سایر تاپیک های مربوط به آن موضوع نیز لینک خواهم داد .
اما سعی می کنم تا حد امکان ؛ سیستم را ساده کنم تا از سردرگمی کاربرها جلوگیری کرده باشم .
بهرحال اینجا وبلاگ است نه انجمن !!
وبلاگ، قوانین و ساختار خاص خودش را دارد و نباید به انجمن یا فاروم تبدیل شود .
بنابراین سعی می کنم تعادل و میانه روی را رعایت کنم. .
نکته مهم :
من تصمیم گرفتم برای جلوگیری از تردید و سردرگمی کاربرهای محترم ؛ تا اطلاع ثانوی ؛ فقط از انجمن زبان اسمبلی Fasm لینک بدهم .
زیرا بهرحال شما کاربران گرامی دیر یا زود علاقه مند می شوید که یک سیستم عامل شخصی یا پروژه ای و دانشگاهی را بطور کامل با زبان اسمبلی بسازید که ناگفته پیداست ؛ Fasm برای این منظور ؛ از سایر کامپایلرهای زبان اسمبلی ، مناسب تر و قویتر است .
زیرا Fasm ، در طراحی و ساخت سیستم عامل ؛ کارنامه ی درخشانی دارد و نمره ی قبولی را دریافت کرده و توانسته است سایر اسمبلرها را پشت سر بگذارد و شکست دهد !
تا به امروز ؛ دهها سیستم عامل را بطور کامل با Fasm ساخته اند .
که این خود دلیلی بر اثبات این ادعا می باشد گه Fasm بهترین کامپایلر زبان اسمبلی برای ساخت سیستم عامل محسوب می شود .
البته برخی اساتید محترم ، در بحث طراحی و ساخت سیستم عامل ؛ زبان اسمبلی Nasm را به کاربران معرفی می کنند اما بنابه دلایل فنی و گسترش سریع Fasm و خودکامپایل بودن و قابل حمل بودن Fasm و سایر مزایای Fasm نسبت به Nasm و Masm ؛ عملا انجمن کاربران Nasm و Masm به رکود و افت دچار شده است و اصطلاحا ریزش کرده است .
ضمن اینکه کاربران ماهر ؛ سیستم عامل های ساخته شده توسط Nasm را از اول تا آخر با Fasm بازنویسی و بازتولید کردند !!
مثل سیستم عامل معروف MikeOS که یک سیستم عامل آموزشی بود و توسط Nasm ساخته شده بود اما بعدا با Fasm بازنویسی شد !
بنابراین دوران شهرت Nasm به پایان رسیده است .
سایر اسمبلرها نیز اصلا به درد طراحی و ساخت سیستم عامل نمی خورند .
نکته بسیار مهم و کلیدی:
ملاک و معیار من برای انتخاب و تعیین و معرفی بهترین زبان برنامه نویسی جهان ؛ هرگز برنامه ی کودکانه و ابلهانه ی Hello World نیست ؛ بلکه توانایی زبان برنامه نویسی در طراحی و ساخت و تولید و توزیع و انتشار سیستم عامل یعنی Operating System ؛ می باشد .
برهمین اساس ؛ بهترین زبان برنامه نویسی ؛ زبانی است که برای طراحی و تولید سیستم عامل یا OS ؛ بهتر و قویتر و کارآمدتر و مناسب تر از بقیه زبانها باشد .
که طبق دانش و تجربه ؛ ثابت شده است که زبان برنامه نویسی اسمبلی و خصوصا Fasm ؛ به دلیل توانایی خارق العاده و منحصر به فرد در طراحی و ساخت سیستم عامل ؛؛ بهترین و کاملترین و قدرتمندترین زبان برنامه نویسی جهان می باشد .
بنابراین :
ملاک و معیار برتری و مزیت یک زبان بر سایر زبانها فقط در یک چیز است :
توانایی آن زبان در تولید سیستم عامل .
سایر چیزهای بی ارزش مثل تولید برنامه کودکانه Hello World را برای همیشه فراموش کنید .
هر زبان احمقانه ای می تواند برنامه ی Hello World بسازد اما کمتر زبانی می تواند سیستم عامل بسازد .
بنابراین در مسابقه ی طراحی و ساخت سیستم عامل ؛ زبان اسمبلی Fasm ، مقام اول جهانی را کسب کرد و قهرمان این مسابقه شد .
این مقام هنوز هم در اختیار زبان اسمبلی Fasm می باشد
بنابراین من پس از تفکر و بازبینی در افکارم ؛ تصمیم گرفتم براساس همین معیار فوق الذکر که شرح آن در بالا آمد ، فقط از انجمن فلت اسمبلر یعنی Fasm ؛ لینک بدهم تا شما از بلاتکلیفی و تردید نجات پیدا کنید و تمام مدت ؛ روی یک اسمبلر قدرتمند و جاودانه و همه منظوره و قابل حمل و چند سکویی و خودکامپایل ، تمرکز کنید و کاملا و بطور تخصصی ، بر زبان اسمبلی مسلط شوید و بتوانید سیستم عامل بسازید .
من فقط برای برخی موارد استثنایی و تخصصی و دشوار و پیچیده که ممکن است احتمالا در انجمن Fasm پیدا نشوند ؛ به انجمن سایر اسمبلرها لینک می دهم تا مشکل شما حل شود .
البته اگر شما یک اسمبلر را بطور کامل یاد بگیرید ؛ آنگاه یادگیری سایر اسمبلرها نیز برای شما آسان خواهد شد .
زیرا ساختار و سیستم تمام کامپایلرهای زبان اسمبلی ؛ بکسان و مشابه می باشد .
پایان
+
+
+
+
نکته خارج از بحث :
به دلیل قطع مکرر برق ؛ تصمیم گرفتم کل محتوای هر پست را در گوشی هوشمند بنویسم و فقط برای تبدیل کردن آدرس به لینک ؛ از کامپیوتر استفاده کنم .
متاسفانه حتی یک لپ تاپ دست دوم هم دیگه پیدا نمی شود که بخرم و از این مشکل نجات پیدا کنم !
اگرچه حتی ارزان ترین لپ تاپ هم ، دهها میلیون تومان قیمت دارد و نمی توانم بخرم !
به همین دلیل از پست بعدی ؛ فقط لینک می دهم و از تکرار مباحث قبلی خودداری می کنم .
اگرچه در کامپیوتر نیز ؛ دیگه هرگز مطالب تکراری و قدیمی را بازتکرار و بازنشر نخواهم کرد .
بنابراین تحت هر شرایطی ؛ از پست بعدی فقط لینک می دهم .
فقط اگر ضرورت داشته باشد برای هر مطلب ؛ یک توضیح مختصر و مفید می دهم .
پایان پست .