برای خرید هاست وردپرس | هاست ووکامرس ویا هاست مخصوص ربات تلگرام میتوانید از کد تخفیف nodria در وبسایت azardata.net استفاده کنید.
0
09134564880

زبان اسمبلی چیست ؟ آموزش اسمبلی به زبان ساده

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

اگر برای شما هم سوال است که زبان assembly چیست ، پس تا انتهای این مقاله از نودریا همراه باشید.

زبان اسمبلی چیست ؟

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

۱۰۱۱۰۰۰۰۰۱۱۰۰۰۰۱

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

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

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

 

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

Larry Wall

 

مثال از زبان assembly

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

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

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

MOV AL, 61

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

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

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

 

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

منابع آنلاین

مراجع

ابزارها

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

  • NASM
  • FASM
  • YASM
  • GASM

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

  • SASM : یک IDE ساده و کراس‌پلتفرم (Cross-platform) برای زیان‌های اسمبلی NASM، MASM، GAS، FASM
  • Fresh IDE : یک IDE ویژوالِ زبان اسمبلی که دارای اسمبلر FASM است
  • WinAsm Studio : یک IDE رایگان که با استفاده از آن می‌توانید به کمک Assembler برای ویندوز ۳۲-بیت و DOS 16-بیت برنامه بنویسید

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

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *