به نام خدا


من بابت زبانهای برنامه نویسی ماشین و اسمبلی  نگران نیستم و خیالم راحت است ! 




زیرا زبانهای ماشین و اسمبلی مثل چسب دو قلو به سخت افزار چسبیده اند و هرکجا که سخت افزار برود این دو نیز با او می روند ! 


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


زبان ماشین یعنی سخت افزار 


زبان اسمبلی یعنی برادر دوقلوی زبان ماشین 


نتیجه:  

زبان اسمبلی یعنی زبان سخت افزار


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


شاید کامپایلرهای ذوقی و سلیقه ای و شلخته و غیر استاندارد زبان اسمبلی  ؛ منسوخ و منقرض شوند اما اسمبلی خالص و واقعی و استاندارد که کامپایلر ندارد و دستی است ؛  هرگز منقرض نمی شود . 


اسمبلی واقعی و خالص و استاندارد  و دستی یعنی چیزی شبیه به این کد  که کاملا با دست نوشته می شود و با دست به زبان ماشین ترجمه می شود و در انحصار هیج شخص حقیقی و حقوقی نیست و یک زبان آزاد و همگانی است : 



mov eax , eax


mov ebx , ebx


mov ecx , ecx


mov edx , edx 


ret 


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


این کد باعث می شود که تمام رجیسترهای عمومی پردازنده  کاملا خالی و تمیز شوند و پردازنده آماده شود تا دستورات جدید را اجرا کند 


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


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


همچنین در ابتدای هر کدام از روتین ها و زیر برنامه ها نیز این کد را بنویسید . 


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



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


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



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


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


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



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


ماکرو یعنی شبیه سازی زبان سطح بالا . 


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


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


قابلیت حمل بر روی سخت افزارهای مختلف  ؛ یک نیاز کاذب و دروغین است . 


در درون هر کامپیوتر  فقط یک نوع پردازنده وجود دارد . 


بنابراین قابلیت حمل یک چیز زائد و بی مصرف و فریبنده است 



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



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


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


IF=00

IS=01

ISNOT=02

THEN=04

ELSE=05

ELSEIF=06

ENDIF=07

AS=08

RETURN=09

TRUE=0A

FALSE=0B

GOTO=0C

JUMP=0D

COPY=0E

CUT=0F

PASTE=10

SELECTALL=11

12=MOVE

13=DEFINE


و الی آخر



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


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




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

.


اینجاست که می گویم بابت زبانهای ماشین و اسمبلی  هرگز نگران و دلواپس و مضطرب نیستم و خیالم راحت است ‌ . 



زبان اسمبلی در هر شکلی که باشد چه سطح پایین و چه سطح بالا ؛ عمری جاودانه و ابدی دارد . 


اسمبلی زبانی است که هرگز منسوخ و منقرض نمی شود . 


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


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


مرگ تدریجی زبانهای سطح بالا حتمی است . دیر و زود دارد اما سوخت و سوز ندارد ! 


سلام مرا به زبانهای فرترن و کوبول و  الگول و لیسپ و بیسیک و  پاسکال و سی و سی پلاس پلاس و سی شارپ و جاوا و پرل و پایتون و روبی  و پی اچ پی و جاوا اسکریپت و فاکس پرو و فورث برسانید و بگویید پرچم زبان اسمبلی همیشه بالاست . 


اسمبلی سطح بالا می تواند زبان اسمبلی را به سلطنت برساند و تاج پادشاهی را بر سر او بگذارد . 


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


زنده باد اسمبلی


زنده باد آزادی


زنده باد امنیت


زنده باد اصالت 


زنده باد قدرت 




HLA=اسمبلی سطح بالا


 HLL= زبان سطح بالا 


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


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