Assembly Language কী এবং এর ইতিহাস

Assembly Language এর ভূমিকা (Introduction to Assembly Language) - অ্যাসেম্বলি প্রোগ্রামিং (Assembly Programming) - Computer Programming

1.2k

অ্যাসেম্বলি ল্যাঙ্গুয়েজ (Assembly Programming) একটি লো-লেভেল প্রোগ্রামিং ভাষা যা সরাসরি প্রসেসরের মেশিন ল্যাঙ্গুয়েজে অনুবাদ করা হয়। এতে প্রতিটি নির্দেশনা মেশিন কোডের সাথে একে একে মিলে যায়। যেমন, যেখানে হাই-লেভেল প্রোগ্রামিং ভাষায় একটি লুপ কয়েকটি লাইন কোডে প্রকাশ করা হয়, সেখানে অ্যাসেম্বলিতে এটি প্রতিটি ধাপে নির্দেশনার মাধ্যমে সম্পন্ন করতে হয়।


অ্যাসেম্বলি ল্যাঙ্গুয়েজের ইতিহাসের বিস্তার

১. প্রথম প্রজন্মের কম্পিউটার এবং মেশিন কোড

  • ইলেকট্রনিক কম্পিউটারের উদ্ভব (১৯৪০-এর দশক): প্রথমদিকের ইলেকট্রনিক কম্পিউটারগুলো, যেমন ENIAC, শুধুমাত্র মেশিন ল্যাঙ্গুয়েজে প্রোগ্রাম করা যেত। এতে প্রোগ্রামিং করতে বাইনারি কোড ব্যবহার করতে হতো যা প্রোগ্রামারের জন্য কঠিন ও সময়সাপেক্ষ ছিল।

২. অ্যাসেম্বলি ল্যাঙ্গুয়েজের আবির্ভাব (১৯৫০-এর দশক)

  • Symbolic Assembly Language: ১৯৫০-এর দশকে মেশিন কোডের জটিলতা কমাতে Symbolic Assembly Language তৈরি হয়, যা সংখ্যা বা বাইনারির পরিবর্তে পাঠযোগ্য টেক্সট নির্দেশনা ব্যবহার করতে শুরু করে। এটি প্রোগ্রামারের জন্য কোড লেখা ও ডিবাগিং সহজ করে তোলে।
  • IBM-এর অবদান: IBM তাদের প্রথম কম্পিউটারগুলোর জন্য বিভিন্ন অ্যাসেম্বলি ল্যাঙ্গুয়েজ তৈরি করে। এটি বিভিন্ন সেক্টরে কম্পিউটারের ব্যবহার দ্রুত সম্প্রসারিত করে।

৩. দ্বিতীয় প্রজন্মের কম্পিউটার এবং অ্যাসেম্বলি ল্যাঙ্গুয়েজ

  • ট্রানজিস্টর-ভিত্তিক কম্পিউটার (১৯৬০-এর দশক): এই যুগে ট্রানজিস্টর-ভিত্তিক কম্পিউটার আসার সাথে অ্যাসেম্বলি ল্যাঙ্গুয়েজ আরও ব্যাপকভাবে ব্যবহার শুরু হয়।
  • DEC এবং PDP কম্পিউটার: Digital Equipment Corporation (DEC) এবং তাদের PDP কম্পিউটারগুলো অ্যাসেম্বলি প্রোগ্রামিংয়ের জন্য উল্লেখযোগ্য ছিল। এটি বড় কোম্পানি এবং গবেষণাগারে ব্যবহার হতো।

৪. মাইক্রোপ্রসেসর যুগ এবং x86 আর্কিটেকচার (১৯৭০-১৯৮০-এর দশক)

  • মাইক্রোপ্রসেসরের আবির্ভাব: ১৯৭১ সালে Intel 4004 প্রসেসরের আবির্ভাব অ্যাসেম্বলি প্রোগ্রামিংয়ে নতুন দিগন্তের সূচনা করে। এর পরের প্রজন্মের প্রসেসর, যেমন Intel 8080 এবং পরে জনপ্রিয় 8086, x86 অ্যাসেম্বলি ল্যাঙ্গুয়েজের ভিত্তি তৈরি করে।
  • x86 অ্যাসেম্বলি: Intel 8086 আর্কিটেকচারের ভিত্তিতে x86 অ্যাসেম্বলি ভাষা তৈরি হয়। এটি IBM PC এবং তার পরবর্তী মডেলগুলোতে ব্যবহৃত হয় এবং আজও আধুনিক প্রসেসরগুলোতে এর প্রভাব দেখা যায়।

৫. আধুনিক যুগ এবং অ্যাসেম্বলি ল্যাঙ্গুয়েজের ব্যবহার

  • অপারেটিং সিস্টেম ডেভেলপমেন্ট: আধুনিক সময়ে অ্যাসেম্বলি ল্যাঙ্গুয়েজ অপারেটিং সিস্টেমের কোর অংশ যেমন কের্নেল, ড্রাইভার ইত্যাদি লেখার জন্য ব্যবহৃত হয়। এটি অপারেটিং সিস্টেমকে প্রসেসরের সাথে দ্রুত যোগাযোগ করতে সাহায্য করে।
  • এমবেডেড সিস্টেম: ছোট ডিভাইস ও মাইক্রোকন্ট্রোলারের জন্য অ্যাসেম্বলি এখনও বহুল ব্যবহৃত হয় কারণ এর মাধ্যমে মেমরি ব্যবহারে দক্ষতা বজায় রাখা যায়।
  • পারফরম্যান্স অপ্টিমাইজেশন: উচ্চ কার্যক্ষমতার প্রোগ্রাম তৈরির জন্য অ্যাসেম্বলি ব্যবহৃত হয় যেখানে দ্রুত ডেটা প্রসেসিং প্রয়োজন।

অ্যাসেম্বলি ল্যাঙ্গুয়েজের উপাদান

  • নির্দেশনা (Instruction): অ্যাসেম্বলির মাধ্যমে CPU-কে কিভাবে কাজ করতে হবে তা নির্দেশনা দেওয়া হয়। উদাহরণস্বরূপ, MOV, ADD, SUB, JMP ইত্যাদি।
  • রেজিস্টার: প্রসেসরের অভ্যন্তরীণ মেমরি ইউনিট যেখানে তাৎক্ষণিক ডেটা সংরক্ষণ করা হয়। যেমন, EAX, EBX, RAX ইত্যাদি।
  • মেমরি অ্যাড্রেসিং মোড: মেমরির কোন অংশে ডেটা থাকবে তা নির্ধারণের পদ্ধতি। যেমন, ডিরেক্ট, ইনডিরেক্ট অ্যাড্রেসিং।

অ্যাসেম্বলি ল্যাঙ্গুয়েজের চ্যালেঞ্জ

  • পোর্টেবিলিটি: বিভিন্ন প্রসেসরের জন্য আলাদা অ্যাসেম্বলি ভাষা থাকায় কোড পোর্টেবল হয় না।
  • জটিলতা: উচ্চ স্তরের ভাষার তুলনায় কোড লেখা ও বোঝা কঠিন।
  • ত্রুটি সংশোধন: অ্যাসেম্বলি প্রোগ্রামের ত্রুটি খুঁজে বের করা কঠিন হতে পারে।

অ্যাসেম্বলি ল্যাঙ্গুয়েজ কম্পিউটার প্রোগ্রামিংয়ের মূল ভিত্তি এবং এটি প্রোগ্রামারদের সরাসরি হার্ডওয়্যারের সাথে কাজ করার সুযোগ দেয়। এর ইতিহাস কম্পিউটার বিজ্ঞানের অগ্রগতির সাথে ঘনিষ্ঠভাবে যুক্ত। আধুনিক যুগেও এটি বিশেষ ক্ষেত্রে ব্যবহৃত হয় যেখানে সরাসরি হার্ডওয়্যার নিয়ন্ত্রণ বা পারফরম্যান্স অত্যন্ত গুরুত্বপূর্ণ।

Content added By
Promotion

Are you sure to start over?

Loading...