زبان اسمبلی
کاربرد زبان اسمبلی > چشم‌انداز تاریخی

در زمانی که کامپیوتر با قابلیت ذخیره کردن برنامه معرفی شد، زبان‌های اسمبلی در دسترس نبودند. کثلین بوث مسئول اختراع زبان اسمبلی می‌باشد؛ که بر پایهٔ کار نظری اش که در سال ۱۹۴۷ آغاز کرد، می‌باشد. همزمان که با همفکری اندرو بوث (که در آینده همسر او شد) و با ریاضی‌دانی به نام جان فون نویمان و فیزیکدانی به نام هرمن گلداستاین در مؤسسه مطالعه‌های پیشرفته، بر روی ARC2 در دانشگاه لندن، بیرکبک کار می‌کرد.
در اواخر ۱۹۴۸، محاسبه کننده ی خودکار مخزن تأخیر الکترونیکی (EDSAC) یک اسمبلر (به نام دستورهای اولیه) داشت که با برنامهٔ خودراه انداز آن دستگاه یکپارچه شده بود. از حافظه ای تک حرفی استفاده می‌کرد که به وسیلهٔ دیوید ویلر توسعه یافت. کسی که به عنوان سازندهٔ اولین اسمبلر، مسئول جامعهٔ کامپیوتر IEEE می‌باشد. گزارش‌های دربارهٔ EDSAC، اسمبلی را برای فرایند ترکیب زمینه‌ها برای رسیدن به یک کلمهٔ راهنما معرفی کردند. SOAP (برنامهٔ اسمبلی بهینهٔ نمادین) یک زبان اسمبلی برای کامپیوتر IBM 650 بود که به وسیلهٔ استن پلی در ۱۹۵۵ نوشته شد.
زبان اسمبلی تعداد زیادی از نیازهای مستعد خطا، خسته کننده و وقت گیر برنامه‌نویسی نسل اول با اولین کامپیوترها را ازبین برد؛ و برنامه نویسان را از موارد خسته کننده ای از جمله به خاطر سپردن کدهای عددی و محاسبه کردن آدرس‌ها آزاد کرد. آن‌ها یک بار به‌طور گسترده برای همهٔ انواع برنامه‌نویسی استفاده شدند. با این حال در دههٔ ۱۹۸۰ (در دههٔ ۱۹۹۰ برای ریزرایانه‌ها) در جستجو برای بهره‌وری برنامه‌نویسی که اثبات شده‌است، استفاده از آنها به مقدار زیادی با زبان‌های سطح بالا جایگزین شد. امروزه زبان اسمبلی هنوز برای دست کاری دستی سخت‌افزار، دسترسی به دستورالعمل‌های مخصوص پردازنده، یا برای آدرس دهی موضوع‌های ساختاری بحرانی استفاده می‌شود. نمونه‌های استفاده عبارت اند از گرداننده‌های دستگاه، سیستم‌های نهفتهٔ سطح پایین، و سیستم‌های بی درنگ.
از دید تاریخی، برنامه‌های متعددی وجود دارند که کاملاً به زبان اسمبلی نوشته شده‌اند. باروز ام‌سی‌پی(۱۹۶۱)(Burroughs MCP) اولین کامپیوتری بود که سیستم عملیاتی به‌طور کامل به زبان اسمبلی توسعه نیافته بود؛ بلکه در زبان مشکل محور سیستم‌های اجرایی (ESPOL) ـ که یک گویش از الگول (زبان الگوریتمی) می‌باشد ـ نوشته شده بود. همچنین بسیاری از کاربردهای تجاری به زبان اسمبلی نوشته شدند. به انضمام مقدار زیادی نرم‌افزارهای رایانه‌های بزرگ آی‌بی‌ام که نوشته شده به وسیلهٔ شرکت‌های بزرگ بود. کوبول، فورترن و بعضی از PL/Iها سرانجام جایگزین مقدار زیادی از این کار شدند. اگرچه تعدادی از سازمان‌های بزرگ در دههٔ ۱۹۹۰، کاربرد زیرساخت‌هایی با زبان‌های اسمبلی را به خوبی حفظ کردند.
بیشتر ریزرایانه‌های اولیه بر زبان اسمبلی از نوع کدگذاری دستی تکیه کردند. به انضمام بیشتر سیستم‌های عملیاتی و برنامه‌های بزرگ. این بخاطر این بود که این سیستم‌ها محدودیت‌های شدید منابع، ساختارهای حافظه و نمایش ویژهٔ تحمیلی و سرویس‌های سیستمی مشکل دار و محدود شده آماده شده داشتند. احتمالاً فقدان کامپایلرهای با زبان سطح بالای درجه یک مناسب برای استفاده ریزرایانه چیز مهمتری بود. یک عامل روانشناسانه نیز احتمالاً نقش بازی می‌کرد: اولین نسل برنامه نویسان ریزرایانه‌ها که باقی ماندند افراد دیوانهٔ بازی با نگرشی خاص بودند.
در مفهومی تجاری تر، حداقل اندازه، حداقل میزان پردازش مورد نیاز، سرعت بهتر و قابل اعتماد بودن از بزرگ‌ترین دلایل برای استفاده از زبان اسمبلی بودند.
سیستم عملیاتی IBM PC DOS، کامپایلر توربو پاسکال و برنامه‌های اولیه مانند برنامهٔ صفحه گسترده ی لوتوس ۱-۲-۳، مثال‌های نمونهٔ برنامه‌های بزرگ با زبان اسمبلی در این زمان می‌باشند. زبان اسمبلی در گذشته بهترین نمایش را در سگا ساترن - برای توسعه و برنامه‌نویسی بازی‌های این کنسول که به‌طور آشکار چالش‌برانگیز بود - داشت. بازی ان بی ای جم که یک بازی مخصوص دستگاه‌های بازی ویدئویی بود، مثال دیگری می‌باشد.
زبان اسمبلی برای یک مدت طولانی زبان اصلی توسعه برای بسیاری از بازی‌های کامپیوتری در دهه‌های ۱۹۸۰ و ۱۹۹۰ بود (از جمله ام‌اس‌ایکس، سینکلر زد ایکس اسپکتروم، کمودور ۶۴، کومودور آمیگا و آتاری اس‌تی). این در بخش بزرگی بود زیرا گویش پایهٔ تفسیری در این سیستم‌ها با عث سرعت اجرایی ناکافی می‌شد همچنان که باعث قابلیت‌های ناکافی برای بدست آوردن همهٔ مزیت‌های سخت‌افزار موجود در این سیستم‌ها می‌شد. بعضی از سیستم‌ها حتی یک محیط یکپارچه توسعه نرم‌افزار (IDE) دارند که دارای قابلیت فوق پیشرفته اشکال زدایی و قابلیت‌های ماکروها هستند. بعضی از کامپایلرهای در دسترس برای ریدیوشک تی آر اس-۸۰ و جانشینانش، قابلیت ترکیب برخط منبع اسمبلی با جمله‌های سطح بالای برنامه را داشتند. پس از گردآوری، یک اسمبلر درونی کدهای برخط ماشین را تولید کرد.