به نام خدا



تصورات غلط درباره زبان اسمبلی


1. زبان اسمبلی در مقایسه با زبانهای سطح بالا کد باینری بیشتری تولید می کند 


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


مثال 


در زبان پاسکال برای نوشتن کد خروج از برنامه،  این کد به ظاهر ساده و کوچک را می نویسیم و خیال می کنیم پاسکال،  کد اسمبلی و باینری کمتری نسبت  به Fasm و RosAsm تولید می کند !!! 


form1.close


پس از کامپایل و دیباگ کد کوچک بالا  با مراجعه به پنجره debugger زبان پاسکال شاهد تولید هزاران خط کد اسمبلی و ماشین اضافی و زائد خواهیم بود . 


در حالیکه در زبان اسمبلی برای نوشتن کد خروج از برنامه؛  کافیست دستور ساده ی زیر را که مستقیما به کد ماشین ترجمه می شود را بنویسیم : 



xor eax eax

ret


فقط همین دو خط کافیست . 



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




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


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


هنوز هم در سال 2024  میلادی شاهد این دروغ و دروغ های مشابه هستیم و جالب اینکه این دروغگوهای شیاد و پول پرست؛   دوره آموزش زبان اسمبلی را هم برگزار می کنند و بابتش پول گزاف از کاربر ساده لوح می گیرند !!! 


واقعا شرم آور است . 




تصور دروغین دوم : 


زبان اسمبلی در محاسبات سنگین موسوم به بیگ دیتا  نسبت به زبان فرترن سرعت کمتری دارد لذا در سوپرکامپیوترها از زبان فرترن استفاده می شود !!! 


این دروغ شرم آور را  ابتدا در دهه  1960 میلادی ؛  دنیس ریچی و همکاران شیاد و دروغگویش بر زبان آوردند تا بتوانند زبان اسمبلی را منزوی و خانه نشین کنند و متاسفانه این موجودات شیاد و حقیر به هدف شوم خود  رسیدند و زبانهای کثیف و کند و سنگین سطح بالا را با سرعت برق  رواج دادند . 



این تصور دروغین  هنوز هم در وب فارسی و انگلیسی  نوشته می شود یعنی در سال 2024 میلادی نیز این دروغ را شاهد هستیم . 


هنوز هم در نرم افزارهای سوپرکامپیوتر بجای زبان سریع و قدرتمند و انعطاف پذیر اسمبلی ؛ از زبان کثیف و منسوخ و منقرض شده ی فرترن و بعضا از زبانهای کثیف  سی و  پایتون استفاده می شود . 


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


فقط یک احمق این تصور دروغین و رایج را باور می کند . 


عامل اختراع زبان کثیف فرترن فقط یک چیز بود : 


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


به دنیس ریچی هم بابت اختراع  زبان کثیف و زشت و شیطانی و منحوس سی ؛  جایزه ی تورینگ دادند !!!!! 


+



تصور دروغین سوم: 


زبان اسمبلی قابل حمل نیست و لذا دنیس ریچی  با ترویج این دروغ بزرگ ؛ توانست زبان سی را در سرتاسر دنیا توسعه دهد و بزرگترین ضربه را به زبان اسمبلی وارد کرد . 


خداوند ؛  دنیس ریچی دروغگو و شیاد را لعنت کند . 



پاسخ به این شبهه ی کثیف و رایج درباب عدم قابلیت حمل زبان اسمبلی که توسط دنیس ریچی ملعون و منافق و ریاکار  در سرتاسر جهان منتشر شد : 


زبان اسمبلی نسخه ی قابل فهم زبان ماشین است و زبان ماشین برای تمام  کامپیوترها و معماری ها و پردازنده ها فقط از یک سیستم ساده و استاندارد بین المللی استفاده می کند و برای هر معماری کافیست این کدها را کمی اصلاح کنیم . به همین سادگی . 



این سیستم استاندارد ساده و بین المللی شامل کدهای 00000000 تا  11111111  می شود که از سال 1936میلادی تا به امروز  کماکان به همین شکل و تحت عنوان باینری یا زبان ماشین برای تمام کامپیوترهای این یکصد سال اخیر بکار رفته است . 


این سیستم در مبنای هگزادسیمال به شکل کدهای  00 تا  FF  نوشته می شود . 



تعداد این کدها فقط 256 کد است . به همین راحتی . 



مثال : 


برای پردازنده اینتل  از کد هگزادسیمال  4C01 استفاده می شود 


برای سایر پردازنده ها از قبیل موتورولا و میپس و اسپارک و پاور پی سی و  آرم ؛  کافیست بجای 4C01 کد هگزادسیمال دیگری را از درون همین سیستم 256 بایتی  استخراج کرده و بنویسیم و سپس طبق معماری مربوطه مجددا با دست،  آدرس ها را تعیین کنیم که کار چندان دشواری نیست . 


کد  پردازنده ی جدید می تواند  4D01 یا  4E01  یا چیزی شبیه به اینها  باشد . به همین سادگی می توانیم زبان ماشین را قابل حمل کنیم .  


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



باور کنید زبان ماشین نیز قابل حمل است اما مافیای حاکم بر دنیای فناوری اطلاعات اصلا دوست ندارد شما کاربرها از این حقیقت باخبر شوید و  عمدا شما را به باتلاق زبانهای سطح بالا پرتاب می کنند  تا همیشه اسیر  و وابسته باشید دقیقا مثل یک معتاد به مواد مخدر . 


من هیچ تفاوتی بین زبانهای برنامه نویسی سطح بالا و مواد مخدر  نمی بینم . 



شاید بگویید این قابلیت حمل فقط در زبان ماشین رخ می دهد اما در زبان اسمبلی قادر به اینکار نیستیم 



پاسخ به این سوال : 



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


برای استفاده از پارسر یا تجزیه گر  می توانید از زبان اسمبلی RosAsm  استفاده کنید 



برای استفاده از ماکروهای قابل حمل نیز می توانید از زبان اسمبلی Fasm استفاده کنید . 


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



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



+


تصور غلط بعدی : 


هر زبان برنامه نویسی کاربرد خاصی دارد و هیچ زبانی نمی تواند همه منظوره باشد . 



این تصور  غلط و رایج  ؛ لااقل توسط زبان سی پلاس پلاس  باطل شده است ولی باز هم این نوشته های سخیف و دروغین را  شاهد هستیم . 




لازم به ذکر است که زبانهای ماشین و اسمبلی  تنها زبانهای جنریک و همه منظوره  در معنای واقعی کلمه ؛  می باشند . 


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



ولی بطور خاص ؛ من پیشنهاد می کنم که برای برنامه نویسی جنریک و عمومی و همه منظوره ؛ از نرم افزارهای زیر استفاده کنید تا برای شما  ثابت شود که زبانهای ماشین و اسمبلی ؛ همه منظوره می باشند : 



Fasm


Nasm


RosAsm


WinHex


Spiro memory hacking



Hackman



Hextor



C32asm



Hex editor NEO



Winasm Studio



Radasm



Easycode visual Assembler



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


برنامه نویسی شئی گرا و رویداد گرا و تعاملی را می توانید در  RosAsm   تجربه کنید 



البته برای برنامه نویسی قابل حمل و شیئ گرا در زبان اسمبلی ؛ می توانید از  نرم افزار زیر نیز استفاده کنید : 


Fresh Flat Assembler 


تمام این نرم افزارهای قدرتمند را می توانید از وبلاگ وحیدمی به  آدرس زیر دانلود نمایید 


https://vahidmy.blog.ir 




به امید نابودی استکبار جهانی و مافیای جهانی حاکم بر   فضای مجازی .