GuilanCS | علوم کامپیوتر
1.04K subscribers
1.61K photos
60 videos
225 files
1.01K links
💻انجمن علمی علوم کامپیوتر دانشگاه گیلان

🔶اینستاگرام انجمن:https://instagram.com/csguilan

🔷ارتباط با دبیر انجمن(اسماعیل ذوالفقاری):
@anon7vip


🔗گروه دانشجویان:
Download Telegram
💎 معرفی زبان اسمبلی


🌴🌱🌿🍀🍃🌷🌼🌸💐🌳🌲🎄🌵
زبان اَسمبلی یک زبان برنامه‌نویسی سطح پایین برای رایانه‌ها و دیگر دستگاه‌های برنامه‌پذیر است که رابطۀ یک-به-یک با دستورالعمل‌های زبان ماشین معماری رایانه دارد. هر زبان اسمبلی مختص به یک معماری رایانه خاص است، برخلاف بیشتر زبان‌های برنامه‌نویسی سطح بالا که با معماری‌های مختلف سازگار هستند ولی برای اجرا شدن به مفسر و مترجم نیاز دارند.

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

زبان اسمبلی از یادیارها برای نشان دادن هر دستور ماشین سطح-پایین یا آپ‌کد استفاده می‌کند. بعضی آپ‌کدها به یک یا چند عملوند به عنوان بخشی از دستورالعمل نیاز دارند، و بیشتر اسمبلرها می‌توانند لیبل‌ها و نمادهایی را به عنوان عملوند، برای نشان دادن آدرس‌های حافظه و ثابت‌های عددی بپذیرند. ماکرو اسمبلرها نیز قابلیت درشت‌دستوری را شامل می‌شوند که این امکان را به وجود می‌آورد که متن یک کد زبان اسمبلی با یک نام از پیش تعیین شده در خلال متن یک کد دیگر استفاده شود. بیشتر اسمبلرها مکانیزم‌های اضافی برای تسهیل فرایند توسعه برنامه، کنترل فرایند اسمبل کردن و پشتیبانی از اشکال‌زدایی ارائه کرده‌اند.
⭐️اسمبلر برنامه‌ای است که با تبدیل یادیارهای دستوری اسمبلی به آپ‌کدها و جایگزینی شناسه‌ها با آدرس‌های حافظه، کد هدف را به وجود می‌آورد. استفاده از ارجاعات نمادی از ویژگی‌های کلیدی اسمبلرها است که از محاسبات خسته‌کننده و به‌روزرسانی‌های دستی آدرس‌ها بعد از تغییر کد برنامه توسط برنامه‌نویس جلوگیری می‌کند. بیشتر اسمبلرها از قابلیت ماکرو نیز بهره می‌برند که این امکان را به وجود می‌آورد تا یک نام خاص برای یک تکه کد مشخص شود و سپس از آن نام در قسمت‌های مختلف برنامه استفاده شود و در هنگام اسمبل کردن برنامه تکه کد مربوطه جایگزین نام آن شود؛ به عنوان مثال از این روش برای تولید توالی‌های دستوری کوتاه رایج در خلال متن برنامه بجای فراخوانی رویه‌ها استفاده می‌شود.
🏁 اسمبلرها از دهه ۱۹۵۰ مورد استفاده قرار گرفتند و نوشتن آن‌ها بسیار راحت‌تر از نوشتن مترجم‌ها برای زبان‌های برنامه‌نویسی سطح بالا است بطوریکه هر دستور یادیاری و هر آدرس حالت ترکیبی این زبان مستقیماً به یک آپ‌کد زبان ماشین تبدیل می‌شود. اسمبلرهای جدید، به طور خاص برای معماری‌های ریسک، مانند اسپارک و پاور، هم‌مانند معماری ایکس۸۶ و ایکس۸۶-۶۴، با بهینه‌سازی زمان‌بندی دستورالعمل‌ها باعث استفاده کارآمد از خط لولۀ واحد پردازش مرکزی می‌شوند.
برخی از رایج‌ترین اسمبلرهای معماری ایکس۸۶ عبارتند از:

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


🌴🌱🌿🍀🍃🌷🌼🌸💐🌳🌲🎄🌵
یک نسخه ی پی دی اف درباره ی "هوش مصنوعی و سیستم های هوشمند" از سایت بالا رو براتون قرار میدیم که امیدواریم مفید باشه برای کسانی که به این موضوع علاقمند هستند 👇👇👇👇👇
خیلی ممنونیم که در این مدت مارو همراهی کردید ..
امیدوارم سال 1395 براتون سالی پر از خیر و برکت باشه و در کنار خانواده سالم و سرحال زندگی کنید
منتظر مطالب علمی و مرتبط با رشته باشید در روزهای آینده
خدانگهدار همه ی شما عزیزان 🌹🌹🌹🌹🌹
🎄🌲🌳🌿🌱🌴🍀🌺🌹🌷🌸🌼💐

پایان قسمت آخر عیدانه ی علوم کامپیوتری
📢📢📢
بنا به درخواست تعداد زیادی از مخاطبین عزیز ، از این پس در هر دو کانال انجمن علمی علوم کامپیوتر دانشگاه گیلان به نام های Guilancs و My Language World آموزش های گوناگون توسط مدرسین مجرب قرار داده خواهد شد .

از افرادی نیز که تمایل برای قرار دادن آموزش در این دو کانال را دارند ، دعوت می شود تا برنامه ی خود را که شامل نام درس ، تعداد جلسات و زمان شروع آموزش می باشد ، به آدرس ایمیل زیر ارسال نمایند
guilancsc@gmail.com


@guilancs
@Mylanguageworld
انواع ساختمان های داده @guilancs
ویژگی های الگوریتم @guilancs
الگوریتم های بازگشتی @guilancs