زبان اسمبلی چیست؟
پردازشگر مرکزی به صورتی پیاده سازی شده است تا فقط به مجموعه دستورات ویژه ای که به زبان ماشین نوشته
شده اند و به شکل رشته ای از اعداد باینری می باشند جواب دهد. یک دستور از کدهای عملیات ملتزم با آرگومان ها
یا پارامترهای آن شکل گرفته است. مثلا، عدد باینری ۶۷۰۹۹۰۹۸۰۹۵ امکان دارد معادل درخواست عملیات جمع ریاضی
باشد که با عدد ۹۸ نمایش داده می شود که محتویات حافظه در آدرس ۶۷۰ را با محتویات حافظه در آدرس ۹۹۰ جمع
می کند و حاصل آن را در آدرس ۰۹۵ جای می دهد.
زبان های سمبولیک
زبان های سمبولیک از کلمه ها به جای کدهای عملیاتی استعمال می کنند و به عملیات، با عبارات سمبولیک مثل 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 کپی کن.
میبینیم که شباهت یک دستور زبان سطح بالا به دستورات زبان ماشین، شباهتی یک به چند است. به این معنی
است که هر دستور زبان برنامه نویسی سطح بالا، با چند دستور زبان ماشین طراحی می شوند.