IBM Basic assembly language and successors
আইবিএম বেসিক অ্যাসেম্বলি ল্যাঙ্গুয়েজ এবং উত্তরসূরি হল আইবিএম সিস্টেম/360 মেইনফ্রেম সিস্টেম এবং আইবিএম জেড-এর মাধ্যমে এর উত্তরসূরিদের জন্য তৈরি অ্যাসেম্বলি ল্যাঙ্গুয়েজ এবং অ্যাসেম্বলারের একটি সিরিজ। এর মধ্যে প্রথমটি, বেসিক অ্যাসেম্বলি ল্যাঙ্গুয়েজ (বিএএল), একটি অত্যন্ত সীমাবদ্ধ অ্যাসেম্বলি ভাষা, যা 1964 সালে চালু হয়েছিল এবং আইবিএম বেসিক প্রোগ্রামিং সাপোর্ট (বিপিএস/360)-এর অংশ হিসাবে মাত্র 8 কেবি প্রধান মেমরি সহ 360 টি সিস্টেমে ব্যবহৃত হয়, এবং শুধুমাত্র একটি কার্ড রিডার, একটি কার্ড পাঞ্চ এবং ইনপুট/আউটপুটের জন্য একটি প্রিন্টার। বি. এ. এল-এর জন্য বেসিক অ্যাসেম্বলারটি বেসিক অপারেটিং সিস্টেম/360 (বি. ও. এস/360)-এর অংশ হিসাবেও উপলব্ধ ছিল। পরবর্তীকালে, সিস্টেম/360-এর জন্য একটি সমাবেশ ভাষা আবির্ভূত হয় যার আরও শক্তিশালী বৈশিষ্ট্য এবং ব্যবহারযোগ্যতা ছিল, যেমন ম্যাক্রোগুলির জন্য সমর্থন। এই ভাষা এবং যে সমাবেশকারীরা এটি প্রয়োগ করেছিল, তারা সিস্টেম/370 এবং পরবর্তী স্থাপত্যগুলির জন্য বিবর্তিত হতে থাকে, এর বাক্য গঠন উত্তরাধিকার সূত্রে এবং প্রসারিত করে। কম্পিউটার শিল্পের কেউ কেউ এগুলিকে সাধারণ শব্দ "বেসিক অ্যাসেম্বলি ল্যাঙ্গুয়েজ" বা "বিএএল"-এর অধীনে উল্লেখ করেছেন। তবে অনেকেই তা করেননি এবং আইবিএম নিজেই সাধারণত তাদের "সিস্টেম/360 অ্যাসেম্বলার ল্যাঙ্গুয়েজ" হিসাবে উল্লেখ করে, একটি প্রদত্ত অপারেটিং সিস্টেম বা প্ল্যাটফর্মের জন্য "অ্যাসেম্বলার" বা অনুরূপ নাম হিসাবে। নির্দিষ্ট অ্যাসেম্বলাররা অ্যাসেম্বলার ই, অ্যাসেম্বলার এফ, অ্যাসেম্বলার এইচ ইত্যাদি নামে পরিচিত ছিল। এই ভাষা ব্যবহারকারী প্রোগ্রামাররা এবং এই সমাবেশকারী পরিবার, তাদের এএলসি (সমাবেশ ভাষা কোডিংয়ের জন্য) বা কেবল "সমাবেশকারী" হিসাবেও উল্লেখ করে। সর্বশেষ উদ্ভূত ভাষাটি আইবিএম হাই-লেভেল অ্যাসেম্বলার (এইচএলএএসএম) নামে পরিচিত। সাধারণ বৈশিষ্ট্য যেহেতু এটি একটি সমাবেশ ভাষা, তাই বিএএল আইবিএম মেইনফ্রেম স্থাপত্যের স্থানীয় নির্দেশ সেট ব্যবহার করে যার উপর এটি চলে, সিস্টেম/360। বিএএল-এর উত্তরসূরীরা সিস্টেম/360, সিস্টেম/370, সিস্টেম/370-এক্সএ, ইএসএ/370, ইএসএ/390 এবং জেড/আর্কিটেকচার সহ আইবিএম মেইনফ্রেম আর্কিটেকচারের স্থানীয় নির্দেশ সেট ব্যবহার করে। যন্ত্রের নির্দেশাবলীর সরলতার অর্থ হল অ্যাসেম্বলারে লেখা কোনও প্রোগ্রামের সোর্স কোড সাধারণত কোবোল বা ফোরট্রানের সমতুল্য প্রোগ্রামের চেয়ে অনেক বেশি লম্বা হয়। অতীতে, হ্যান্ড-কোডেড অ্যাসেম্বলার প্রোগ্রামগুলির গতি প্রায়শই এই ত্রুটিটি পূরণ করার জন্য অনুভূত হত, তবে কম্পাইলারগুলিকে অপ্টিমাইজ করার আবির্ভাবের সাথে, মেইনফ্রেমের জন্য সি এবং অন্যান্য অগ্রগতির সাথে, অ্যাসেম্বলার তার বেশিরভাগ আবেদন হারিয়েছে। আইবিএম অ্যাসেম্বলারকে উন্নত করা অব্যাহত রেখেছে, এবং এটি তখনও ব্যবহৃত হয় যখন গতি বা খুব সূক্ষ্ম নিয়ন্ত্রণের প্রয়োজন সর্বাধিক হয়। যাইহোক, বিএএল-এর সমস্ত আইবিএম উত্তরসূরি একটি পরিশীলিত ম্যাক্রো সুবিধা অন্তর্ভুক্ত করেছেন যা অনেক বেশি কম্প্যাক্ট সোর্স কোড লেখার অনুমতি দেয়। অ্যাসেম্বলার ব্যবহারের আরেকটি কারণ হল যে সমস্ত অপারেটিং সিস্টেম ফাংশন উচ্চ স্তরের ভাষায় অ্যাক্সেস করা যায় না। আইবিএম-এর মেইনফ্রেম অপারেটিং সিস্টেমের অ্যাপ্লিকেশন প্রোগ্রাম ইন্টারফেসগুলিকে অ্যাসেম্বলি ল্যাঙ্গুয়েজ "ম্যাক্রো" নির্দেশাবলীর একটি সেট হিসাবে সংজ্ঞায়িত করা হয়, যা সাধারণত অপারেটিং সিস্টেমের রুটিন আহ্বান করার জন্য সুপারভাইজার কল (এসভিসি) [যেমন, জেড/ওএস-এ] বা ডায়াগনোজ (ডিআইএজি) [যেমন, জেড/ভিএম] নির্দেশাবলী আহ্বান করে। অ্যাসেম্বলার সাবরুটিন ব্যবহার করে উচ্চ-স্তরের ভাষায় লেখা প্রোগ্রামগুলি থেকে অপারেটিং সিস্টেম পরিষেবাগুলি ব্যবহার করা সম্ভব। অ্যাসেম্বলার স্টেটমেন্ট ফরম্যাট অ্যাসেম্বলার ভাষার বিবৃতিগুলির বিন্যাস একটি 80-কলামের পাঞ্চ কার্ডের বিন্যাসকে প্রতিফলিত করে, যদিও ধারাবাহিক সংস্করণগুলি বেশিরভাগ বিধিনিষেধকে শিথিল করেছে। ঐচ্ছিক বিবৃতি লেবেল বা নাম হল একটি স্ট্রিং বর্ণানুক্রমিক অক্ষর যা কলাম 1 থেকে শুরু হয়। প্রথম অক্ষরটি বর্ণানুক্রমিক হতে হবে। পরবর্তী সংস্করণগুলিতে লেবেলগুলিতে ব্যবহৃত আইনি অক্ষরগুলিতে @, #, $এবং _ যোগ করা হয় এবং আকারটি প্রাথমিক ছয়টি থেকে বাড়িয়ে আটটি অক্ষর করা হয়, তারপর প্রায় সীমাহীন দৈর্ঘ্যে। অপারেশন কোড বা "স্মরণীয়" কলাম 1-এর ডানদিকে যে কোনও কলামে শুরু হতে পারে, একটি ফাঁকা দ্বারা বিবৃতি লেবেল থেকে পৃথক। অপারেশন কোড শুধুমাত্র একটি মেশিন নির্দেশ (ম্যাক্রো উপলব্ধ ছিল না), এটি সাধারণত 1,2,3, বা খুব কমই 4 অক্ষর তৈরি করে। অপারেশন কোডটি আটটি অক্ষর পর্যন্ত অনুমতি দেওয়ার জন্য উন্নত করা হয়েছিল, তারপরে কার্যকরভাবে সীমাহীন দৈর্ঘ্যে। অপারেন্ড ক্ষেত্রটি অপারেশন কোডের ডানদিকে যে কোনও কলামে শুরু হতে পারে, যা অপারেশন কোড থেকে কমপক্ষে একটি ফাঁকা দ্বারা পৃথক করা হয়। অক্ষরের ধ্রুবক ব্যতীত অপারেন্ডে ফাঁকগুলি অবৈধ। অপারেশন কোডের উপর নির্ভর করে এক বা একাধিক অপারেন্ড নিয়ে গঠিত অপারেন্ড ক্ষেত্রটি ঐচ্ছিক। ঐচ্ছিক মন্তব্যগুলি অপারেন্ড ক্ষেত্রের ডানদিকে উপস্থিত হতে পারে, কমপক্ষে একটি ফাঁকা দ্বারা পৃথক করা। বেসিক অ্যাসেম্বলি ল্যাঙ্গুয়েজ বিবৃতি চালিয়ে যাওয়ার অনুমতি দেয় না। অ্যাসেম্বলারের পরবর্তী সংস্করণগুলি বিবৃতির 72 নম্বর কলামে যে কোনও অ-ফাঁকা অক্ষরের উপস্থিতি অব্যাহত থাকার ইঙ্গিত দেয়। বেসিক অ্যাসেম্বলি ল্যাঙ্গুয়েজের জন্য 72 নম্বর কলামটি ফাঁকা থাকা প্রয়োজন। একটি "পূর্ণ-কার্ড মন্তব্য" 1 নম্বর কলামে একটি তারকাচিহ্ন (*) দ্বারা নির্দেশিত হয়। কার্ড কলাম 73-80, যাকে আইডেন্টিফিকেশন-সিকোয়েন্স ফিল্ড বলা হয়, প্রোগ্রামার যে কোনও উদ্দেশ্যে ব্যবহার করতে পারেন, তবে সাধারণত একটি জাম্বলড কার্ড ডেক অবলম্বন করার জন্য সিকোয়েন্স নম্বর থাকে। বেসিক অ্যাসেম্বলি ভাষা 25 নম্বর কলামে শুরু হওয়া বিবৃতি সহ একটি বিকল্প বিবৃতি বিন্যাসেরও অনুমতি দেয়, যা একত্রিত নির্দেশকে 1 নম্বর কলামে শুরু হওয়া একই কার্ডে ঘুষি মারার অনুমতি দেয়। এই বিকল্পটি অ্যাসেম্বলারের পরবর্তী সংস্করণগুলিতে অব্যাহত ছিল না। নির্দেশাবলীর প্রকার তিনটি প্রধান ধরনের নির্দেশাবলী অ্যাসেম্বলারে লেখা একটি প্রোগ্রামের সোর্স কোডে পাওয়া যায়। সমাবেশকারী নির্দেশাবলী, কখনও কখনও নির্দেশাবলী, ছদ্ম অপারেশন বা অন্যান্য সিস্টেমে ছদ্মপস বলা হয়, কোড জেনারেশন প্রক্রিয়া চলাকালীন বিভিন্ন ক্রিয়াকলাপ সম্পাদনের জন্য সমাবেশকারীকে অনুরোধ করা হয়। উদাহরণস্বরূপ, সি. এস. ই. সি. টি মানে "এখানে কোডের একটি বিভাগ শুরু করুন"; ডি. এস. ই. সি. টি একটি কাঠামোর জন্য তথ্য সংজ্ঞা প্রদান করে, কিন্তু কোনও কোড তৈরি করে না; ডিসি অবজেক্ট কোডে স্থাপন করার জন্য একটি ধ্রুবককে সংজ্ঞায়িত করে। আরও গুরুত্বপূর্ণ সমাবেশকারী নির্দেশাবলীর মধ্যে একটি হল ইউজিং, যা এস/360 স্থাপত্যের বেস-ডিসপ্লেসমেংট অ্যাড্রেসিংকে সমর্থন করে। এটি একটি আপেক্ষিক ঠিকানার জন্য কোন বেস রেজিস্টার এবং অফসেট ব্যবহার করা উচিত তা নির্ধারণ করতে অ্যাসেম্বলারকে গাইড করে। বিএএল-এ, এটি ইউজিং বেস, রেগ-1,., রেগ-এন ফর্মের মধ্যে সীমাবদ্ধ ছিল এস/360-এ মেশিন নির্দেশের ঠিকানাগুলি একটি বেস রেজিস্টারের মান থেকে একটি স্থানচ্যুতি (0-4095 বাইট) নির্দিষ্ট করে; যদিও স্থাপত্যের পরবর্তী সংস্করণগুলি আপেক্ষিক-ঠিকানা বিন্যাস যুক্ত করেছে, পুরানো বিন্যাসগুলি এখনও অনেক নির্দেশাবলী দ্বারা ব্যবহৃত হয়। ইউজিং প্রোগ্রামারকে অ্যাসেম্বলারকে বলতে দেয় যে নির্দিষ্ট বেস রেজিস্টারগুলিতে "বেস", বেস + 4096 (যদি একাধিক রেজিস্টার নির্দিষ্ট করা থাকে) ইত্যাদির ঠিকানা রয়েছে বলে ধরে নেওয়া হয়। এটি শুধুমাত্র প্রোগ্রামারের জন্য একটি শর্টকাট প্রদান করে, যাকে অন্যথায় প্রতিটি নির্দেশে বেস রেজিস্টার নির্দিষ্ট করতে হবে। প্রোগ্রামাররা এখনও এই মানের উপর নির্ভরশীল কোড লেখার আগে রেজিস্টারে "বেস"-এর ঠিকানাটি লোড করার জন্য দায়বদ্ধ। সম্পর্কিত ডি. আর. ও. পি অ্যাসেম্বলার নির্দেশ পূর্ববর্তী ব্যবহারকে বাতিল করে দেয়। যন্ত্রের নির্দেশাবলী (স্মরণীয়) যন্ত্রের নির্দেশাবলীর সঙ্গে এক-থেকে-এক সম্পর্ক রয়েছে। প্রতিটি নির্দেশ সেটের জন্য অপারেশন ম্যানুয়াল-এর নীতিমালায় সম্পূর্ণ স্মরণীয় নির্দেশ সেটটি বর্ণনা করা হয়েছে। উদাহরণস্বরূপঃ * এটি একটি মন্তব্য লাইন * 'জিগি' লেবেলযুক্ত * অবস্থানে সঞ্চিত পূর্ণশব্দ পূর্ণসংখ্যাটি সাধারণ রেজিস্টার 3ঃ এল 3-এ লোড করুন, জিগি এস. এল. এ 4,5 সাধারণ রেজিস্টারে মান পরিবর্তন করুন 4 5 বিট এম. ভি. সি লক্ষ্য দ্বারা অবশিষ্ট, উৎস অক্ষরগুলিকে অবস্থান 'সোর্স' থেকে 'টার্গেট' এপি কাউন্টে স্থানান্তর করে, = পি '1' মেমরির অবস্থান 'কাউন্ট' (প্যাক করা দশমিক বিন্যাস) এর মান 1 যোগ করে 'পরবর্তী' এখানে ইকু 'লেবেল করার জন্য পরবর্তী শর্তহীন শাখা এটি একটি লেবেল সি. এল. সি লক্ষ্য, = সি' অ্যাড্রেস 'মেমরির অবস্থান' টার 'তুলনা করুন এক্স86 অ্যাসেম্বলি ল্যাঙ্গুয়েজের মতো কিছু অন্যান্য সিস্টেমের অ্যাসেম্বলারের বিপরীতে, রেজিস্টার নিমোনিক্স সংরক্ষিত প্রতীক নয় তবে প্রোগ্রামের অন্য কোথাও ইকিউইউ বিবৃতির মাধ্যমে সংজ্ঞায়িত করা হয়। এটি অ্যাসেম্বলার ভাষা প্রোগ্রামগুলির পঠনযোগ্যতা উন্নত করে এবং রেজিস্টার ব্যবহারের একটি ক্রস-রেফারেন্স প্রদান করে। এইভাবে সাধারণত আপনি একটি অ্যাসেম্বলার প্রোগ্রামে নিম্নলিখিতগুলি দেখতে পাবেনঃ R3 EQU 3. L R3, ZIGGY কিছু উল্লেখযোগ্য নির্দেশমূলক স্মৃতিচিহ্ন হল একটি কলের জন্য BALR যা একটি রেজিস্টারে রিটার্ন অ্যাড্রেস এবং কন্ডিশন কোড সংরক্ষণ করে, এসভিসি, ডিআইএজি এবং জেডএপি। সিস্টেম/360 মেশিন নির্দেশাবলী দৈর্ঘ্যে এক, দুই, বা তিনটি অর্ধশব্দ (দুই থেকে 6 বাইট)। মূলত অপারেশন কোড ক্ষেত্রের প্রথম দুটি বিট দ্বারা মনোনীত চারটি নির্দেশের বিন্যাস ছিল; জেড/আর্কিটেকচার অতিরিক্ত বিন্যাস যোগ করেছে। ম্যাক্রো এবং শর্তাধীন সমাবেশ বেসিক প্রোগ্রামিং সাপোর্ট অ্যাসেম্বলার ম্যাক্রো সমর্থন করে না। অ্যাসেম্বলার ডি দিয়ে শুরু হওয়া পরবর্তী অ্যাসেম্বলার সংস্করণগুলি প্রোগ্রামারকে ম্যাক্রোতে নির্দেশাবলী একত্রিত করার এবং সেগুলিকে একটি লাইব্রেরিতে যুক্ত করার অনুমতি দেয়, যা পরে অন্যান্য প্রোগ্রামে আহ্বান করা যেতে পারে, সাধারণত সি এবং সম্পর্কিত ভাষায় প্রিপ্রোসেসর সুবিধার মতো পরামিতিগুলির সাথে। ম্যাক্রোতে শর্তসাপেক্ষ সমাবেশকারী নির্দেশাবলী অন্তর্ভুক্ত থাকতে পারে, যেমন এআইএফ (একটি 'যদি' গঠন), নির্বাচিত পরামিতি অনুসারে বিভিন্ন কোড তৈরি করতে ব্যবহৃত হয়। এটি এই অ্যাসেম্বলারের ম্যাক্রো সুবিধাকে খুব শক্তিশালী করে তোলে। সি-তে মাল্টিলাইন ম্যাক্রো একটি ব্যতিক্রম হলেও, অ্যাসেম্বলারে ম্যাক্রো সংজ্ঞা সহজেই শত শত লাইন হতে পারে। অপারেটিং সিস্টেম ম্যাক্রো বেশিরভাগ প্রোগ্রামের জন্য অপারেটিং সিস্টেম থেকে পরিষেবাগুলির প্রয়োজন হবে এবং ওএস সেই পরিষেবাগুলির অনুরোধের জন্য স্ট্যান্ডার্ড ম্যাক্রো সরবরাহ করে। এগুলি ইউনিক্স সিস্টেম কলের অনুরূপ। উদাহরণস্বরূপ, এমভিএস-এ (পরবর্তী জেড/ওএস), স্টোরেজ (ওবিটিএআইএন প্যারামিটার সহ) গতিশীলভাবে মেমরির একটি ব্লক বরাদ্দ করে এবং জিইটি একটি ফাইল থেকে পরবর্তী যৌক্তিক রেকর্ড পুনরুদ্ধার করে। এই ম্যাক্রোগুলি অপারেটিং-সিস্টেম-নির্ভর; বেশ কয়েকটি উচ্চ-স্তরের ভাষার বিপরীতে, আইবিএম মেইনফ্রেম অ্যাসেম্বলি ভাষাগুলি মেমরি বরাদ্দ করতে, আই/ও ক্রিয়াকলাপ সম্পাদন করতে এবং আরও অনেক কিছুর জন্য অপারেটিং-সিস্টেম-স্বাধীন বিবৃতি বা গ্রন্থাগার সরবরাহ করে না এবং বিভিন্ন আইবিএম মেইনফ্রেম অপারেটিং সিস্টেমগুলি সিস্টেম পরিষেবা স্তরে সামঞ্জস্যপূর্ণ নয়। উদাহরণস্বরূপ, একটি ক্রমিক ফাইল লেখা z/OS এবং z/VSE-তে ভিন্নভাবে কোড করা হবে। উদাহরণ নিম্নলিখিত খণ্ডটি দেখায় যে "যদি সেক্স = 'এম' হয়, তবে পুরুষদের সাথে 1 যোগ করুন; অন্যথায়, মহিলাদের সাথে 1 যোগ করুন" যুক্তিটি অ্যাসেম্বলারে সঞ্চালিত হবে। সি. এল. আই. সেক্স, সি 'এম' পুরুষ? যদি না হয়, এল 7 এর কাছাকাছি শাখা, পুরুষরা পুরুষদের বর্তমান মান রেজিস্টারে লোড করে 7 এলএ 7,1 (7) যোগ করে 1 এসটি 7, পুরুষরা ফলাফলটি সংরক্ষণ করে বি গো অন এই অংশটি দিয়ে শেষ করে আইএস এফইএম ইক্যু * একটি লেবেল এল 7, মহিলারা রেজিস্টারে মহিলাদের মধ্যে বর্তমান মান লোড করে 7 এলএ 7,1 (7) যোগ করে 1 এসটি 7, মহিলারা ফলাফলটি আবার সংরক্ষণ করে গো অন ইক্যু *-বাকি প্রোগ্রাম-পুরুষদের জন্য পুরুষরা ডিসি এফ '0' কাউন্টার (প্রাথমিকভাবে = 0) মহিলাদের জন্য মহিলারা ডিসি এফ '0' কাউন্টার (প্রাথমিকভাবে = 0) নিম্নলিখিতটি হল এস. টি. এম. <আই. ডি. 1> (13) কলারের সেভ এরিয়া এল. আর. 12,15-এ রেজিস্টার 14,15 এবং 0 থেকে 12 সংরক্ষণ করুন প্রোগ্রামের এন্ট্রি পয়েন্ট ঠিকানা সহ বেস রেজিস্টার স্থাপন করুন হ্যালো ব্যবহার করে, 12 অ্যাসেম্বলারকে বলুন যে আমরা পি. জি. এম-এর জন্য কোন রেজিস্টার ব্যবহার করছি। বেস এলএ 15, সেভ নাও পয়েন্ট অ্যাট আওয়ার সেভ এরিয়া এসটি 15,8 (13) সেট ফরওয়ার্ড চেইন এসটি 13,4 (15) সেট ব্যাক চেইন এলআর 13,15 সেট আর 13 অ্যাড্রেস করার জন্য নতুন সেভ এরিয়া *-এন্ড অফ হাউসকিপিং (বেশিরভাগ প্রোগ্রামের মতো)-ডব্লিউটিও 'হ্যালো ওয়ার্ল্ড' রাইট টু অপারেটর (অপারেটিং সিস্টেম ম্যাক্রো) * এল 13,4 (13) কলার-প্রদত্ত সেভ এরিয়া এক্সসি 8 (4,13), 8 (13) ক্লিয়ার ফরওয়ার্ড চেইন এলএম 14,12,12 (13) রেজিস্টার পুনরুদ্ধার করুন এন্ট্রি হিসাবে ড্রপ 12 'ইউজিং' এসআর 15,15 সেট রেজিস্টার 15 থেকে 0 সেট করুন যাতে রিটার্ন কোড (আর15) শূন্য বিআর 14 রিটার্ন হয় রেজিস্টার সংরক্ষণ এবং পরে পুনরুদ্ধার ও প্রত্যাবর্তনের কারণে, এই ছোট প্রোগ্রামটি অপারেটিং সিস্টেম জব কন্ট্রোল ল্যাঙ্গুয়েজ (জে. সি. এল) দ্বারা সরাসরি আহ্বান করা ব্যাচ প্রোগ্রাম হিসাবে ব্যবহারযোগ্যঃ// ই. এক্স. ই. সি পি. জি. এম = এইচ. ই. এল. ও বা, বিকল্পভাবে, এটি এই জাতীয় প্রোগ্রাম থেকে সাবরুটিন হিসাবে কল করা যেতে পারেঃ 'এইচ. ই. এল. ও' সংস্করণ কল করুন আই. বি. এম সিস্টেম/360 মডেল 20-এর জন্য অ্যাসেম্বলার ব্যতীত, আই. বি. এম অ্যাসেম্বলারগুলি মূলত ঊর্ধ্বমুখী-সামঞ্জস্যপূর্ণ ছিল। পার্থক্যগুলি মূলত অনুমোদিত অভিব্যক্তিগুলির জটিলতা এবং ম্যাক্রো প্রক্রিয়াকরণে ছিল। ওএস/360 অ্যাসেম্বলারগুলি মূলত তাদের মেমরির প্রয়োজনীয়তা অনুসারে মনোনীত করা হয়েছিল। বেসিক প্রোগ্রামিং সাপোর্ট অ্যাসেম্বলার বিপিএস-এর জন্য অ্যাসেম্বলার হল প্রকৃত "বেসিক অ্যাসেম্বলার"। এটি কার্ড থেকে লোড করার উদ্দেশ্যে করা হয়েছিল এবং এটি একটি 8 কেবি সিস্টেম/360 (মডেল 20 ব্যতীত)-এ চলবে। ম্যাক্রো নির্দেশাবলী বা বর্ধিত স্মৃতিবিদ্যার জন্য এর কোনও সমর্থন নেই (যেমন বিসি 2-এর পরিবর্তে বিএইচ শাখা পর্যন্ত যদি শর্ত কোড 2 একটি উচ্চ তুলনা নির্দেশ করে)। এটি শুধুমাত্র একটি নিয়ন্ত্রণ বিভাগ একত্রিত করতে পারে এবং ডামি বিভাগগুলিকে (কাঠামোর সংজ্ঞা) অনুমতি দেয় না। প্যারেন্থেসাইজড অভিব্যক্তি অনুমোদিত নয় এবং অভিব্যক্তিগুলি তিনটি শব্দের মধ্যে সীমাবদ্ধ থাকে যার একমাত্র অপারেটর হল '+', '-' এবং '*'। বেসিক অপারেটিং সিস্টেম অ্যাসেম্বলার বেসিক অপারেটিং সিস্টেমের দুটি অ্যাসেম্বলার সংস্করণ রয়েছে। উভয়েরই 16 কেবি মেমরি প্রয়োজন, একটি টেপ রেসিডেন্ট এবং অন্যটি ডিস্ক। অ্যাসেম্বলার ডি অ্যাসেম্বলার ডি ছিল 16 কেবি মেমরির আকারের মেশিনের জন্য ডস/360 অ্যাসেম্বলার। এটি দুটি সংস্করণে এসেছেঃ ন্যূনতম 16 কেবি মেমরি সহ মেশিনের জন্য একটি 10 কেবি বৈকল্পিক এবং 24 কেবি সহ মেশিনের জন্য একটি 14 কেবি বৈকল্পিক। 64 কেবি বা তার বেশি ওজনের ডস মেশিনের জন্য একটি এফ-স্তরের অ্যাসেম্বলারও উপলব্ধ ছিল। ডি অ্যাসেম্বলারগুলি উচ্চতর সংস্করণগুলির প্রায় সমস্ত বৈশিষ্ট্য সরবরাহ করেছিল। অ্যাসেম্বলার ই এবং এফ অ্যাসেম্বলার ই ন্যূনতম 32 কেবি প্রধান স্টোরেজ সহ একটি ওএস/360 সিস্টেমে চালানোর জন্য ডিজাইন করা হয়েছিল, অ্যাসেম্বলার নিজেই 15 কেবি প্রয়োজন। অ্যাসেম্বলার এফ 64 কেবি মেমরি সহ একটি সিস্টেমে ডস/360 বা ওএস/360 এর অধীনে চলতে পারে, অ্যাসেম্বলারটির জন্য 44 কেবি প্রয়োজন। এই অ্যাসেম্বলারগুলি ওএস/360-এর একটি আদর্শ অংশ; যে সংস্করণটি তৈরি করা হয়েছিল তা সিস্টেম জেনারেশনে (এসওয়াইএসজিইএন) নির্দিষ্ট করা হয়েছিল। অ্যাসেম্বলার এইচ অ্যাসেম্বলার এইচ ওএস/360 এবং উত্তরসূরিদের উপর চলে; এটি অ্যাসেম্বলার এফ-এর চেয়ে দ্রুত এবং আরও শক্তিশালী ছিল, তবে ম্যাক্রো ভাষা সম্পূর্ণরূপে সামঞ্জস্যপূর্ণ ছিল না। অ্যাসেম্বলার এইচ সংস্করণ 2 1981 সালে ঘোষণা করা হয়েছিল এবং এ. এম. ও. ডি. ই এবং আর. এম. ও. ডি. ই নির্দেশাবলী সহ এক্সটেন্ডেড আর্কিটেকচার (এক্স. এ)-এর জন্য সমর্থন অন্তর্ভুক্ত করে। 1994 সালে এটি বিপণন থেকে প্রত্যাহার করা হয় এবং 1995 সালে সমর্থন শেষ হয়। এটি উচ্চ পর্যায়ের অ্যাসেম্বলার দ্বারা প্রতিস্থাপিত হয়েছিল। অ্যাসেম্বলার এক্সএফ অ্যাসেম্বলার এক্সএফ হল অ্যাসেম্বলার এফ-এর একটি বেশিরভাগ সামঞ্জস্যপূর্ণ আপগ্রেড যা নতুন সিস্টেম/370 স্থাপত্য নির্দেশাবলী অন্তর্ভুক্ত করে। এই সংস্করণটি ওএস/ভিএস, ডস/ভিএস এবং ভিএম সিস্টেমের জন্য একটি সাধারণ সমাবেশ প্রদান করে। অন্যান্য পরিবর্তনের মধ্যে রয়েছে অভিব্যক্তি এবং ম্যাক্রো প্রক্রিয়াকরণের উপর শিথিল বিধিনিষেধ। অ্যাসেম্বলার এক্সএফ-এর জন্য ন্যূনতম পার্টিশন/অঞ্চলের আকার 64 কেবি (ভার্চ্যুয়াল) প্রয়োজন। প্রস্তাবিত আকার 128 কেবি। 1992 সালের জুন মাসে আইবিএম-এর অ্যাসেম্বলার এইচ ভার্সন 2-এর পরিবর্তে হাই লেভেল অ্যাসেম্বলার হাই লেভেল অ্যাসেম্বলার বা এইচএলএএসএম মুক্তি পায়। এটি সিস্টেম/370 এবং সিস্টেম/390-এর ডিফল্ট অনুবাদক ছিল এবং এমভিএস, ভিএসই এবং ভিএম অপারেটিং সিস্টেমগুলিকে সমর্থন করত। 2023 সালের হিসাবে এটি জেড/আর্কিটেকচার মেইনফ্রেম কম্পিউটারগুলিতে জেড/ওএস, জেড/ভিএসই, জেড/ভিএম এবং জেড/টিপিএফ অপারেটিং সিস্টেমের জন্য আইবিএম-এর বর্তমান অ্যাসেম্বলার প্রোগ্রামিং ভাষা। রিলিজ 6 এবং পরে লিনাক্সেও চলে এবং ইএলএফ বা জিওএফএফ অবজেক্ট ফাইল তৈরি করে (এই পরিবেশটি কখনও কখনও আইবিএম জেড-এ লিনাক্স হিসাবে উল্লেখ করা হয়)। আইবিএম-এ কাজ করার সময়, জন রবার্ট এরম্যান এইচএলএএসএম-এর প্রধান বিকাশকারী ছিলেন এবং তাকে "উচ্চ স্তরের অ্যাসেম্বলারের জনক" হিসাবে বিবেচনা করা হয়। নাম সত্ত্বেও, এইচ. এল. এ. এস. এম-এর নিজস্ব অনেক বৈশিষ্ট্য নেই যা সাধারণত একটি উচ্চ-স্তরের সমাবেশকারীর সাথে যুক্ত থাকে। নামটি অতিরিক্ত ম্যাক্রো ভাষা ক্ষমতা থেকে আসতে পারে, যেমন ব্যবহারকারী-সংজ্ঞায়িত ফাংশন লেখার ক্ষমতা। অ্যাসেম্বলারটি বেশিরভাগ অ্যাসেম্বলার এইচ এবং অ্যাসেম্বলারের (এক্সএফ) অনুরূপ, এসএলএসি (স্ট্যানফোর্ড লিনিয়ার অ্যাক্সিলারেটর) পরিবর্তনগুলি অন্তর্ভুক্ত করে। যোগ করা বৈশিষ্ট্যগুলির মধ্যে ছিল অবস্থান কাউন্টারের জন্য সি. এস. ই. সি. টি/ডি. এস. ই. সি. টি-র একটি ইঙ্গিত, নির্ভরশীল এবং লেবেলযুক্ত ইউজিং স্টেটমেন্ট, বর্তমানে সক্রিয় ইউজিং স্টেটমেন্টগুলির একটি তালিকা, ক্রস-রেফারেন্সের মধ্যে একটি পরিবর্তনশীল পড়া বা লেখা হয়েছে কিনা তার একটি ইঙ্গিত এবং মিশ্র-কেস প্রতীকের নামগুলিকে অনুমতি দেওয়া। আর. এস. ই. সি. টি নির্দেশনা (শুধুমাত্র পাঠযোগ্য নিয়ন্ত্রণ বিভাগ) সমাবেশকারীকে প্রতি বিভাগের ভিত্তিতে পুনঃপ্রবেশ পরীক্ষা করার অনুমতি দেয়। আর. এস. ই. সি. টি পূর্বে "অ্যাসেম্বলার এইচ-এ নথিভুক্ত এবং অসঙ্গতিপূর্ণভাবে প্রয়োগ করা হয়েছিল।" উচ্চ স্তরের অ্যাসেম্বলার টুলকিট উচ্চ স্তরের অ্যাসেম্বলারের জন্য একটি পৃথক মূল্যের সহায়ক। টুলকিটে রয়েছেঃ কাঠামোবদ্ধ প্রোগ্রামিং ম্যাক্রোগুলির একটি সেট-আইএফ/এলস/এন্ডিফ ডু/এন্ডো স্ট্রটসার্চ/ওরেলস/এন্ডলুপ/এন্ডেসার্চ কেসসেন্ট্রি/কেস/এন্ডেক্যাস সেলেকট/কখন/অন্য/শেষ। একটি বিচ্ছিন্নকারী। একটি "প্রোগ্রাম আন্ডারস্ট্যান্ডিং টুল" (রি-ইঞ্জিনিয়ারিং সহায়তা)। একটি সোর্স এক্সআরইএফ ইউটিলিটি (ক্রস-রেফারেন্স সুবিধা)। ইন্টারেক্টিভ ডিবাগ সুবিধা। বর্ধিত সুপারসি (উৎস তুলনা সরঞ্জাম)। বিশেষ সংস্করণ 7090/7094 সাপোর্ট প্যাকেজ অ্যাসেম্বলার আইবিএম 7090/7094 সাপোর্ট প্যাকেজ, যা এসইউপিপিএকে নামে পরিচিত, "তিনটি প্রোগ্রাম নিয়ে গঠিত যা একটি সিস্টেম 360-এর জন্য লিখিত প্রোগ্রামগুলিকে আইবিএম 709,7090,7094, বা 7094 II-এ একত্রিত, পরীক্ষা এবং কার্যকর করার অনুমতি দেওয়ার জন্য ডিজাইন করা হয়েছে। এই ক্রস-অ্যাসেম্বলারটি 7090 বা 7094 সিস্টেমে চলে এবং সিস্টেম/360 উন্নয়নের সময় ব্যবহৃত হয়েছিল। এই অ্যাসেম্বলারটি ছয়-বিট বিসিডি অক্ষর সেটের পাশাপাশি আট-বিট ইবিসিডিআইসি সমর্থন করে। আইবিএম সিস্টেম/360 মডেল 20 অ্যাসেম্বলার আইবিএম মডেল 20-এর জন্য দুটি অ্যাসেম্বলার সরবরাহ করেছিলঃ মডেল 20 বেসিক অ্যাসেম্বলার এবং মডেল 20 ডিপিএস/টিপিএস অ্যাসেম্বলার। উভয়ই শুধুমাত্র সি. আই. ও, টি. আই. ও, এক্স. আই. ও. বি, এস. পি. এস. ডব্লিউ, বি. এ. এস, বি. এ. এস. আর এবং এইচ. পি. আর সহ মডেল 20-এ উপলব্ধ নির্দেশাবলী সমর্থন করে। বেসিক অ্যাসেম্বলার সিস্টেম/360 বেসিক অ্যাসেম্বলারের সামান্য বেশি সীমাবদ্ধ সংস্করণ; উল্লেখযোগ্যভাবে, প্রতীকগুলি দৈর্ঘ্যে চারটি অক্ষরের মধ্যে সীমাবদ্ধ। এই সংস্করণটি 4 কেবি মেমরি সহ একটি সিস্টেমে চলতে সক্ষম এবং ম্যাক্রো সমর্থন আই. ও. সি. এস ম্যাক্রোর মধ্যে সীমাবদ্ধ। কার্ড সংস্করণগুলি দ্বি-পাস সংযোজনকারী যা শুধুমাত্র কার্ড ইনপুট/আউটপুট সমর্থন করে। টেপ-আবাসিক সংস্করণগুলি ওয়ান-পাস, মধ্যবর্তী সংরক্ষণের জন্য চৌম্বকীয় টেপ ব্যবহার করে। সিপিএস অ্যাসেম্বলারের সাথে একত্রিত প্রোগ্রামগুলি সর্বোচ্চ 16 কেবি সমাধান করতে পারে। ডিপিএস/টিপিএস অ্যাসেম্বলার সিস্টেম/360 বিপিএস/বিওএস অ্যাসেম্বলারের কিছুটা সীমাবদ্ধ সংস্করণ। আইবিএম সিস্টেম/360 মডেল 44 পিএস অ্যাসেম্বলার আইবিএম সিস্টেম/360 মডেল 44 প্রোগ্রামিং সিস্টেম অ্যাসেম্বলার এমন একটি ভাষা প্রক্রিয়া করে যা ওএস/360 এবং ডস/360 অ্যাসেম্বলার ভাষার একটি "নির্বাচিত উপসেট"। সবচেয়ে উল্লেখযোগ্যভাবে মডেল 44 অ্যাসেম্বলারে ম্যাক্রো এবং ধারাবাহিকতার বিবৃতিগুলির জন্য সমর্থনের অভাব রয়েছে। অন্যদিকে এটির বেশ কয়েকটি বৈশিষ্ট্য রয়েছে যা অন্যান্য সিস্টেম/360 অ্যাসেম্বলারগুলিতে পাওয়া যায় না-বিশেষত একটি কার্ড ইমেজ সোর্স ডেটাসেট আপডেট করার নির্দেশাবলী, সাধারণ নামে, এবং এস. ই. টি. এ অ্যাসেম্বলার ভেরিয়েবলের অন্তর্নিহিত সংজ্ঞা। স্টোরেজ-টু-স্টোরেজ (এসএস) নির্দেশাবলী বা বাইনারি (সিভিবি)-তে রূপান্তর, দশমিক (সিভিডি)-তে রূপান্তর, রিড ডাইরেক্ট (আরডিডি) এবং রাইট ডাইরেক্ট (ডাব্লুআরডি) নির্দেশাবলীর জন্য এটির কোনও সমর্থন নেই। এটি মডেল 44-এর জন্য অনন্য চারটি নির্দেশাবলী অন্তর্ভুক্ত করেঃ চেঞ্জ অগ্রাধিকার মাস্ক (সিএইচপিএম), লোড পিএসডাব্লু স্পেশাল (এলপিএসএক্স), রিড ডাইরেক্ট ওয়ার্ড (আরডিডিডাব্লু) এবং রাইট ডাইরেক্ট ওয়ার্ড (ডাব্লুআরডিডাব্লু)। এতে সোর্স প্রোগ্রাম আপডেট করার নির্দেশাবলীও অন্তর্ভুক্ত রয়েছে, যা অন্যান্য সিস্টেমে (এসকেপিটিও, আরইডব্লিউএনডি, এনইউএম, ওএমআইটি এবং এন্ডইউপি) ইউটিলিটি প্রোগ্রাম দ্বারা সম্পাদিত একটি ফাংশন। আইবিএম সিস্টেম/360 টিএসএস অ্যাসেম্বলার সিস্টেম/360 মডেল 67 টাইম শেয়ারিং সিস্টেমের জন্য অ্যাসেম্বলারের অনন্য টিএসএস বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য নির্দেশাবলীতে বেশ কয়েকটি পার্থক্য রয়েছে। পি. এস. ই. সি. টি নির্দেশিকা একটি প্রোটোটাইপ নিয়ন্ত্রণ বিভাগ তৈরি করে যার মধ্যে স্থানান্তরযোগ্য ঠিকানা ধ্রুবক এবং প্রোগ্রাম দ্বারা ব্যবহৃত পরিবর্তনযোগ্য তথ্য রয়েছে। অ্যাসেম্বলার জি "অ্যাসেম্বলার জি" 1970-এর দশকে ওয়াটারলু বিশ্ববিদ্যালয় দ্বারা অ্যাসেম্বলার এফ-এ করা পরিবর্তনের একটি সেট (অ্যাসেম্বলার এফ ছিল/ওপেন সোর্স)। বর্ধিতকরণগুলি বেশিরভাগ ইনপুট/আউটপুটের উন্নত পরিচালনা এবং উন্নত বাফারিং-এ হয় যা সমাবেশগুলিকে উল্লেখযোগ্যভাবে ত্বরান্বিত করে। "অ্যাসেম্বলার জি" কখনও আইবিএম-এর পণ্য ছিল না। অ-আইবিএম সমাবেশকারী বিশেষ পরিবেশের জন্য বেশ কয়েকটি আইবিএম-সামঞ্জস্যপূর্ণ সমাবেশকারী রয়েছে। ইউনিভিস থেকে ইউনিভাক 90/60,90/70 এবং 90/80 সিরিজটি আইবিএম-ফরম্যাট অ্যাসেম্বলার গ্রহণ করার জন্য ডিজাইন করা হয়েছিল, কারণ মেশিন সিরিজটি এস/360 এবং এস/370-এর অনুরূপ ছিল। ফুজিৎসু বিএস 2000 সিরিজটিও ইউনিভাকের মতো একই সম্পদ থেকে 370 টি ওয়ার্কালাইক হিসাবে নির্মিত হয়েছিল এবং এখনও ইউরোপের কিছু অংশে ব্যবহৃত হচ্ছে। ডিগনাস এল. এল. সি সিস্টেমস/এ. এস. এম হল একটি এইচ. এল. এ. এস. এম-সামঞ্জস্যপূর্ণ সমাবেশকারী যা আই. বি. এম সিস্টেমে বা ক্রস-সমাবেশকারী হিসাবে স্থানীয়ভাবে চলতে পারে। ডন হিগিন্সের লেখা ফ্রিওয়্যার পিসি/370 পরে মাইক্রো ফোকাস কিনে নেয়। জেড390 একটি অ্যাসেম্বলার এবং সিস্টেম 390 এমুলেটর যা ডন হিগিন্স লিখেছেন এবং জাভাতে প্রোগ্রাম করা হয়েছে। এটি ওপেন সোর্স এবং http://www.z390.org পেন স্টেট ইউনিভার্সিটি থেকে পাওয়া যায় যা ASSIST নামে একটি প্যাকেজ রচনা করেছে, যার মধ্যে একটি সিস্টেম 370 অ্যাসেম্বলার এবং ইন্টারপ্রেটার রয়েছে। টাচিয়ন সফ্টওয়্যার এলএলসি টাচিয়ন অ্যাসেম্বলার ওয়ার্কবেঞ্চ বাজারজাত করে যা উইন্ডোজ, লিনাক্স/x86, এস/390-এর জন্য লিনাক্স এবং জেড সিরিজ, এআইএক্স এবং সোলারিসে চলে। জিএনইউ অ্যাসেম্বলার (গ্যাস) ওএস/390 এবং আইবিএম জেড-এ লিনাক্সের জন্য জিএনইউ কম্পাইলার কালেকশন (জিসিসি)-এর অংশ। এই অ্যাসেম্বলারের একটি অনন্য সিনট্যাক্স রয়েছে যা আইবিএম আর্কিটেকচারের জন্য অন্যান্য অ্যাসেম্বলারের সাথে সামঞ্জস্যপূর্ণ নয়। গুরুত্ব মূলত সমস্ত সিস্টেম/360 অপারেটিং সিস্টেমগুলি অ্যাসেম্বলার ভাষায় লেখা হয়েছিল এবং সমস্ত সিস্টেম ইন্টারফেসগুলি ম্যাক্রো সংজ্ঞা দ্বারা সংজ্ঞায়িত করা হয়েছিল। উচ্চ-স্তরের ভাষাগুলি (এইচএলএল) থেকে প্রবেশাধিকার সেই ভাষা সরবরাহের মধ্যে সীমাবদ্ধ ছিল এবং অন্যান্য সিস্টেম কলগুলিকে এইচএলএল প্রোগ্রামগুলি থেকে অ্যাসেম্বলার সাবরুটিন হিসাবে কোড করতে হত। এছাড়াও, আইবিএম একটি ইনস্টলেশনের মাধ্যমে ওএস বৈশিষ্ট্যগুলির কাস্টমাইজেশনের অনুমতি দেয় যা প্রস্থান হিসাবে পরিচিত ছিল-ব্যবহারকারী-সরবরাহকৃত রুটিন যা স্বাভাবিক ওএস ফাংশনগুলিকে প্রসারিত বা পরিবর্তন করতে পারে। এই প্রস্থানগুলি অ্যাসেম্বলার ভাষায় কোড করা প্রয়োজন ছিল। পরে, আইবিএম একটি সিস্টেম প্রোগ্রামিং ভাষা, পিএল/এস-এ ওএস/360 পুনরায় কোড করে, কিন্তু, একটি সংক্ষিপ্ত ট্রায়াল ছাড়া, ব্যবহারকারীদের জন্য পিএল/এস কম্পাইলার প্রকাশ না করার সিদ্ধান্ত নেয়। এই কারণগুলির ফলস্বরূপ, বহু বছর ধরে আইবিএম সিস্টেমে অ্যাসেম্বলার ভাষার উল্লেখযোগ্য ব্যবহার দেখা গেছে। আরও দেখুন আইবিএম সিস্টেম/360 এএসএসআইএসটি অ্যাসেম্বলার পিসি-ভিত্তিক আইবিএম-সামঞ্জস্যপূর্ণ মেইনফ্রেম-সামঞ্জস্যপূর্ণ মেশিন বা ভার্চ্যুয়াল মেশিনের তালিকা ডিসএসেম্বলার-অ্যাসেম্বলির বিপরীত প্রক্রিয়া, মেশিন কোড থেকে অ্যাসেম্বলির মতো উৎস পুনর্গঠন উল্লেখ বাহ্যিক লিঙ্ক আইবিএম উচ্চ স্তরের অ্যাসেম্বলার ম্যানুয়াল আইবিএম সিস্টেম/360 অ্যাসেম্বলার ল্যাঙ্গুয়েজ (ছাত্র পাঠ্য) জেড/ওএস এবং জেড/ভিএম এবং জেড/ভিএসই ভাষার জন্য উচ্চ স্তরের অ্যাসেম্বলারের রেফারেন্স পাঙ্কটিলিয়াস প্রোগ্রামারঃ আইবিএম মেইনফ্রেম অ্যাসেম্বলার বেসিক আইবিএম মেইনফ্রেম অ্যাসেম্বলি ল্যাঙ্গুয়েজ প্রোগ্রামিং ওএস/390 অ্যাসেম্বলার প্রোগ্রামিং ভূমিকা (আর্কাইভ) ছোট পরীক্ষার জন্য ওয়েব সক্ষম আইবিএম অ্যাসেম্বলার এফ কম্পাইলার এএসএসআই