زبان اسمبلی یک زبان برنامه‌نویسی سطح پایین (Low-level Programming Language) است که دستوراتش معادل کدهای ماشین (Machine Code) هستند. به عبارت دیگر، مجموعه‌ای از دستورات باینری (Binary) که مقادیری را به داخل رجیسترهای CPU (یا ریزپردازنده‌های دیگر) می‌ریزند یا از آن برمی‌دارند.

مقدمه

یک ریزپردازنده، یک ماشین حساب مکانیکی است. یک ریزپردازنده تعدادی رجیستر (Register) مشخص دارد که می‌توانیم آنها را مکانی برای نگهداری اعداد در نظر بگیریم. دستورات به صورت کدهای ماشین به یک ریزپردازنده داده می‌شوند. هر دستور به صورت مجموعه‌ای از بیت‌های باینری نمایش داده می‌شود (مجموعه‌ای از ۰ و ۱ها). برای مثال، در زیر یک خط کد ماشین می‌بینید:

چند بیت اول (۱۰۱۱۰) دستور کپی کردن یک مقدار در یک رجیستر است.  سه رقم دیگر (۰۰۰) رجیستری را مشخص می‌کنند که می‌خواهیم مقدار را در آن کپی کنیم. بقیه‌ی ارقام (۰۱۱۰۰۰۰۱)، مقداری را نشان می‌دهند که می‌خواهیم کپی کنیم.

البته ۱۰۱۱۰ بی‌معناست و کامپیوتر “نمی‌داند” که این ارقام در واقع می‌گویند “این مقدار را کپی کن”. پردازنده به گونه‌ای طراحی می‌شود که مجموعه‌ای از پالس‌های الکتریکی، که ۱۰۱۱۰ تعیین می‌کند (وصل، قطع، وصل، وصل، قطع)، نتیجه‌ی موردنظر را به ما بدهد. به همین دلیل از کلمه‌ی “مکانیکی” استفاده می‌شود.

حالا تصور کنید که می‌خواهید دستوری برای پردازنده بنویسید. خیلی راحت می‌توانید ببینید که نوشتن هزاران خط ۰ و ۱ می‌تواند چقدر خسته‌کننده و پر از خطا باشد. راه‌حل این مشکل، زبان برنامه نویسی اسمبلی است. زبان اسمبلی جایگزین‌هایی را برای کدهای طولانی باینری در نظر می‌گیرد که برای انسان قابل فهمند.

 

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

لورم ایپسوم

 

مثال

برای مثال، اگر ۱۰۱۱۰ به معنای “مقدار را جابه‌جا کن (Move the Value)” باشد، می‌توانیم آن را کوتاه‌تر کنیم و از دستور MOV استفاده کنیم.

هم‌چنین می‌توانیم به رجیستر ۰۰۰ نامی بدهیم که یادآوری آن راحت‌تر باشد (در این مورد، نام این رجیستر را AL گذاشتیم).

در نهایت، می‌توانیم مقدار را به دستگاه اعداد (Numbering System) دیگری ببریم، مثل دسیمال (۹۱) یا هگزادسیمال (۶۱). آن وقت کد بالا به این صورت تغییر می‌کند:

MOV AL, 61

وقتی کل برنامه را به این روش نوشتیم، آن وقت assembler می‌تواند هر خط کد را به مشابه باینری مناسب آن تبدیل کند.

کامپیوترها با اجرای میلیون‌ها دستور کوچک این‌ چنینی در ثانیه کار می‌کنند (محاسبات را انجام می‌دهند، داده‌ها را جابه‌جا یا منتقل می‌کنند).

دستورات بسیار ساده (مثلاً این مقدار را جابه‌جا کن، آن مقدار را کپی کن، این دو مقدار را با هم جمع بزن و نتیجه را در مکانی ذخیره کن) با هم ترکیب می‌شوند و عمل‌هایی پیچیده می‌سازند. این عمل‌ها در سطوح بالاتر با هم ترکیب می‌شوند و کارهایی را انجام می‌دهند که از دید شما مفهومی مشخص دارند.

 

منابع یادگیری زبان اسمبلی

منابع آنلاین

مراجع

ابزارها

اسمبلرها- اسمبلرهای زیادی موجودند. در زیر لیستی از معروف‌ترین اسمبلرهای متن باز و رایگان را مشاهده می‌کنید:

IDEها (محیط یکپارچه‌ی توسعه‌ی نرم افزار)

انجمن و یادگیری مداوم

کتاب‌ها

instagram default popup image round
Follow Me
502k 100k 3 month ago
اشتراک گذاری