زبان اسمبلی

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

پردازشگر مرکزی به صورتی پیاده سازی شده است تا فقط به مجموعه دستورات ویژه ای که به زبان ماشین نوشته

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

یا پارامترهای آن شکل گرفته است. مثلا، عدد باینری ۶۷۰۹۹۰۹۸۰۹۵ امکان دارد معادل درخواست عملیات جمع ریاضی

باشد که با عدد ۹۸ نمایش داده می شود که محتویات حافظه در آدرس ۶۷۰ را با محتویات حافظه در آدرس ۹۹۰ جمع

می کند و حاصل آن را در آدرس ۰۹۵ جای می دهد.

زبان های سمبولیک

زبان های سمبولیک از کلمه ها به جای کدهای عملیاتی استعمال می کنند و به عملیات، با عبارات سمبولیک مثل add

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

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

متغیرها از فضایی در حافظه یا برعکس قرار دادن محتویات متغیرها در فضای وِیژه ای در حافظه می باشد. تناظر توسط

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

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

اسمبلی: mov b2, 3Ah، که به معنی “مقدار ۳A را به رجیستر b2 در پردازشگر منتقل کن”.

کد اسمبلی برای پیاده سازی الگوریتم bubble-sort که اعضا یا نام را در یک لیست مرتب می کند به صورت زیر است

bs proc array:DWORD,len:DWORD

     mov ecx, len

     mov edx, array

bs_o:

     xor ebp, ebp

     bs_i:

     mov eax, DWORD PTR [edx+ebp*4+4]

     cmp DWORD PTR [edx+ebp*4], eax

     jb @F

     xchg eax, DWORD PTR [edx+ebp*4]

     mov DWORD PTR [edx+ebp*4+4], eax

@@:

     add ebp,1

     cmp ebp, ecx

     jb bs_i

     loop bs_o

     pop ebp

     retn 8

bs endp

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

آن کاری به شدت سختی می باشد. در دنیای امروز، زبان برنامه نویسی اسمبلی، برای نوشتن BIOS، درایور سخت

افزارها، و یا در تلویزیون ها امروزه به عنوان برنامه منوها و غیره قابل استفاده قرار می گیرد. بسیار راحت تر می شود تا

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

نویسی استفاده شوند. مثلا زبان بیسیک که در اواسط دهه ۶۰ میلادی پیاده سازی شد و اکنون هم از آن استفاده می شود.

FORTRAN افسانه ای  که در اواسط دهه ۵۰ میلادی پیاده سازی شد و اکنون هم استفاده هایی دارد.

پاسکال، پیدایش آن اوایل دهه ۷۰ میلادی بود.

زبان C که در اواسط دهه ۷۰ شکل گرفت.

زبان C++ که در اواسط دهه ۸۰ میلادی ارائه شد.

زبان های برنامه نویسی دیگری هم برای استفاده در ساخت برنامه های کاربردی ارائه شده اند. از آنجایی که زبان های

برنامه نویسی C و C++ اجازه دستکاری در بیت ها، بایت ها و آدرس های حافظه را می دهند، به آن ها زبان های

برنامه نویسی سطح متوسط گفته می شود.

در یک زبان برنامه نویسی سمبولیک، عبارت هایی مثل A=A+B دیده می شوند که به معنی اضافه کردن B به A است.

پردازشگر این کار رادر چند گام انجام می دهد

درون مایه باینری A را از RAM بگیر و آن را داخل رجیستر R1 در پردازشگر کپی کن.

درون مایه باینری B را از RAM بگیر و آن را داخل رجیستر R2 در پردازشگر کپی کن.

درون مایه R1 و R2 را در Adder کپی کن و عملیات جمع را اجرا کن و حاصل را در R3 بگذار.

درون مایه R3 را به آدرس A در RAM کپی کن.

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

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