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 عام رجسٹر میں ویلیو کو 5 بٹس ایم وی سی ٹارگٹ کے ذریعے چھوڑ دیں، سورس حروف کو لوکیشن 'سورس' سے 'ٹارگٹ' اے پی کاؤنٹ میں منتقل کرتا ہے، = پی '1' میموری لوکیشن 'کاؤنٹ' (پیکڈ اعشاریہ فارمیٹ) میں ویلیو میں 1 شامل کریں 'اگلا' یہاں ایکیو * لیبل لگانے کے لیے اگلی غیر مشروط برانچ یہ ایک لیبل سی ایل سی ٹارگٹ ہے، = سی 'ایڈریس' میموری لوکیشن 'ٹار' کا موازنہ کریں کچھ دوسرے سسٹمز کے اسمبلرز کے برعکس، جیسے کہ X86 اسمبلی لینگویج، رجسٹر نیمونکس مخصوص علامتیں نہیں ہیں بلکہ پروگرام میں کہیں اور EQU بیانات کے ذریعے بیان کی جاتی ہیں۔ یہ اسمبلر زبان کے پروگراموں کی پڑھنے کی اہلیت کو بہتر بناتا ہے اور رجسٹر کے استعمال کا ایک کراس حوالہ فراہم کرتا ہے۔ اس طرح عام طور پر آپ اسمبلر پروگرام میں درج ذیل دیکھ سکتے ہیں: R3 EQU 3. L R3, ZIGGY کچھ قابل ذکر انسٹرکشن نیمونکس BALR ہیں جو کال کے لیے ریٹرن ایڈریس اور کنڈیشن کوڈ کو رجسٹر، SVC، DIAG، اور ZAP میں محفوظ کرتے ہیں۔ سسٹم/360 مشین ہدایات لمبائی میں ایک، دو، یا تین نصف الفاظ (دو سے 6 بائٹس) ہیں۔ اصل میں چار انسٹرکشن فارمیٹس تھے، جنہیں آپریشن کوڈ فیلڈ کے پہلے دو بٹس کے ذریعے نامزد کیا گیا تھا ؛ زیڈ/آرکیٹیکچر نے اضافی فارمیٹس شامل کیے۔ میکرو اور مشروط اسمبلی بنیادی پروگرامنگ سپورٹ اسمبلر میکرو کی حمایت نہیں کرتا تھا۔ اسمبلی ڈی سے شروع ہونے والے بعد کے اسمبلی ورژن پروگرامر کو میکرو میں ہدایات کو ایک ساتھ گروپ کرنے اور انہیں لائبریری میں شامل کرنے کی اجازت دیتے ہیں، جسے پھر دوسرے پروگراموں میں، عام طور پر پیرامیٹرز کے ساتھ، جیسے سی اور متعلقہ زبانوں میں پری پروسیسر کی سہولیات کے ساتھ استعمال کیا جا سکتا ہے۔ میکرو میں مشروط اسمبلر ہدایات شامل ہو سکتی ہیں، جیسے کہ اے آئی ایف (ایک 'اگر' تعمیر)، جو منتخب کردہ پیرامیٹرز کے مطابق مختلف کوڈ تیار کرنے کے لیے استعمال ہوتی ہے۔ یہ اس اسمبلر کی میکرو سہولت کو بہت طاقتور بناتا ہے۔ اگرچہ سی میں ملٹی لائن میکرو مستثنی ہیں، لیکن اسمبلر میں میکرو تعریفیں آسانی سے سینکڑوں لائنیں ہو سکتی ہیں۔ آپریٹنگ سسٹم میکرو زیادہ تر پروگراموں کو آپریٹنگ سسٹم سے خدمات کی ضرورت ہوگی، اور او ایس ان خدمات کی درخواست کے لیے معیاری میکرو فراہم کرتا ہے۔ یہ یونکس سسٹم کالز کے مترادف ہیں۔ مثال کے طور پر، ایم وی ایس (بعد میں زیڈ/او ایس) میں، اسٹوریج (اوبیٹین پیرامیٹر کے ساتھ) متحرک طور پر میموری کا ایک بلاک مختص کرتا ہے، اور جی ای ٹی فائل سے اگلا منطقی ریکارڈ حاصل کرتا ہے۔ یہ میکرو آپریٹنگ سسٹم پر منحصر ہیں۔ کئی اعلی سطح کی زبانوں کے برعکس، آئی بی ایم مین فریم اسمبلی زبانیں میموری مختص کرنے، آئی/او آپریشنز انجام دینے وغیرہ کے لیے آپریٹنگ سسٹم سے آزاد بیانات یا لائبریریاں فراہم نہیں کرتی ہیں، اور مختلف آئی بی ایم مین فریم آپریٹنگ سسٹم سسٹم سروس کی سطح پر مطابقت نہیں رکھتے ہیں۔ مثال کے طور پر، ایک ترتیب وار فائل لکھنے کو زیڈ/او ایس اور زیڈ/وی ایس ای میں مختلف طریقے سے کوڈ کیا جائے گا۔ مثالیں مندرجہ ذیل ٹکڑے سے پتہ چلتا ہے کہ اسمبلر میں منطق "اگر SEX = 'M'، مردوں میں 1 شامل کریں ؛ ورنہ، خواتین میں 1 شامل کریں" کیسے انجام دی جائے گی۔ سی ایل آئی سیکس، سی ایم مرد؟ BNE IS _ FEM اگر نہیں، تو L 7 کے آس پاس برانچ کریں، مرد مردوں کی موجودہ قیمت کو رجسٹر 7 LA 7,1 میں لوڈ کریں (7) 1 ST 7 شامل کریں، مرد نتیجہ کو واپس اسٹور کرتے ہیں B اس حصے IS _ FEM EQU * A لیبل L 7 کے ساتھ ختم ہوا، خواتین خواتین میں موجودہ قیمت کو رجسٹر 7LA 7,1 میں لوڈ کرتی ہیں (7) 1 ST 7 شامل کریں، خواتین نتیجہ واپس اسٹور کرتی ہیں-باقی پروگرام-* مردوں کے لیے مرد DC F '0' کاؤنٹر (ابتدائی طور پر = 0) خواتین کے لیے خواتین DC F '0' کاؤنٹر (ابتدائی طور پر = 0) درج ذیل ہے: ایس ٹی ایم 14,12,12 (13) کالر کے سیو ایریا ایل آر 12 میں رجسٹر 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 کے علاوہ) پر چلے گا۔ اس میں میکرو ہدایات یا توسیعی یادداشت کے لیے کوئی سپورٹ نہیں ہے (جیسے کہ BC 2 کی جگہ برانچ میں BH اگر کنڈیشن کوڈ 2 اعلی موازنہ کی نشاندہی کرتا ہے)۔ یہ صرف ایک کنٹرول سیکشن کو جمع کر سکتا ہے اور ڈمی سیکشنز (ساخت کی تعریف) کی اجازت نہیں دیتا ہے۔ پیرانتھیسائزڈ تاثرات کی اجازت نہیں ہے اور تاثرات تین اصطلاحات تک محدود ہیں جن میں صرف آپریٹرز '+'، '-'، اور '*' ہیں۔ بنیادی آپریٹنگ سسٹم اسمبلر بنیادی آپریٹنگ سسٹم کے دو اسمبلر ورژن ہیں۔ دونوں کے لیے 16 کے بی میموری کی ضرورت ہوتی ہے، ایک ٹیپ رہائشی اور دوسری ڈسک۔ اسمبلر ڈی اسمبلر ڈی 16 کے بی میموری سائز والی مشینوں کے لیے ڈی او ایس/360 اسمبلر تھا۔ یہ دو ورژن میں آیا: کم از کم 16 کے بی میموری والی مشینوں کے لیے 10 کے بی ورژن، اور 24 کے بی والی مشینوں کے لیے 14 کے بی ورژن۔ 64 کے بی یا اس سے زیادہ والی ڈی او ایس مشینوں کے لیے ایف سطح کا اسمبلر بھی دستیاب تھا۔ ڈی اسمبلرز نے اعلی ورژن کی تقریبا تمام خصوصیات پیش کیں۔ اسمبلر ای اور ایف اسمبلر ای کو کم از کم 32 کے بی مین اسٹوریج کے ساتھ او ایس/360 سسٹم پر چلانے کے لیے ڈیزائن کیا گیا تھا، جس میں اسمبلر کو خود 15 کے بی کی ضرورت ہوتی ہے۔ اسمبلر ایف 64 کے بی میموری والے سسٹم پر ڈی او ایس/360 یا او ایس/360 کے تحت چل سکتا ہے، جس میں اسمبلر کو 44 کے بی کی ضرورت ہوتی ہے۔ یہ اسمبلرز OS/360 کا ایک معیاری حصہ ہیں ؛ جو ورژن تیار کیا گیا تھا وہ سسٹم جنریشن (SYSGEN) میں متعین کیا گیا تھا۔ اسمبلر ایچ اسمبلر ایچ او ایس/360 اور جانشینوں پر چلتا ہے۔ یہ اسمبلر ایف سے تیز اور زیادہ طاقتور تھا، لیکن میکرو زبان مکمل طور پر مطابقت نہیں رکھتی تھی۔ اسمبلی ایچ ورژن 2 کا اعلان 1981 میں کیا گیا تھا اور اس میں توسیعی فن تعمیر (ایکس اے) کے لیے تعاون شامل ہے، جس میں AMODE اور RMODE ہدایات شامل ہیں۔ اسے 1994 میں مارکیٹنگ سے واپس لے لیا گیا اور 1995 میں سپورٹ ختم ہو گئی۔ اس کی جگہ اعلی سطحی اسمبلی نے لے لی۔ اسمبلی XF اسمبلی XF اسمبلی F کا زیادہ تر ہم آہنگ اپ گریڈ ہے جس میں نیا سسٹم/370 فن تعمیر کی ہدایات شامل ہیں۔ یہ ورژن OS/VS، DOS/VS اور VM سسٹمز کے لیے ایک مشترکہ اسمبلر فراہم کرتا ہے۔ دیگر تبدیلیوں میں تاثرات اور میکرو پروسیسنگ پر پابندیوں میں نرمی شامل ہے۔ اسمبلر ایکس ایف کو کم از کم پارٹیشن/ریجن سائز 64 کے بی (ورچوئل) کی ضرورت ہوتی ہے۔ تجویز کردہ سائز 128 کے بی ہے۔ ہائی لیول اسمبلیلر ہائی لیول اسمبلیلر یا ایچ ایل اے ایس ایم کو جون 1992 میں آئی بی ایم کے اسمبلیلر ایچ ورژن 2 کی جگہ جاری کیا گیا تھا۔ یہ سسٹم/370 اور سسٹم/390 کے لیے ڈیفالٹ مترجم تھا، اور ایم وی ایس، وی ایس ای، اور وی ایم آپریٹنگ سسٹمز کی حمایت کرتا تھا۔ 2023 تک یہ آئی بی ایم کی موجودہ اسمبلر پروگرامنگ زبان ہے جو اس کے زیڈ/او ایس، زیڈ/وی ایس ای، زیڈ/وی ایم اور زیڈ/ٹی پی ایف آپریٹنگ سسٹم کے لیے زیڈ/آرکیٹیکچر مین فریم کمپیوٹرز پر ہے۔ ریلیز 6 اور بعد میں لینکس پر بھی چلتا ہے، اور ای ایل ایف یا جی او ایف ایف آبجیکٹ فائلیں تیار کرتا ہے (اس ماحول کو بعض اوقات آئی بی ایم زیڈ پر لینکس کہا جاتا ہے)۔ آئی بی ایم میں کام کرتے ہوئے، جان رابرٹ ایرمین نے ایچ ایل اے ایس ایم کی تخلیق کی اور وہ اس کے لیڈ ڈویلپر تھے اور انہیں "فادر آف ہائی لیول اسمبلر" سمجھا جاتا ہے۔ نام کے باوجود، ایچ ایل اے ایس ایم میں اپنے طور پر وہ بہت سی خصوصیات نہیں ہیں جو عام طور پر اعلی سطح کے اسمبلر سے وابستہ ہوتی ہیں۔ یہ نام اضافی میکرو زبان کی صلاحیتوں سے آ سکتا ہے، جیسے کہ صارف کے طے شدہ افعال لکھنے کی صلاحیت۔ اسمبلر زیادہ تر اسمبلر ایچ اور اسمبلر (ایکس ایف) سے ملتا جلتا ہے، جس میں ایس ایل اے سی (اسٹینفورڈ لکیری ایکسلریٹر) ترمیم شامل ہے۔ شامل کردہ خصوصیات میں لوکیشن کاؤنٹر کے لیے سی ایس ای سی ٹی/ڈی ایس ای سی ٹی کا اشارہ، انحصار اور لیبل والے استعمال کے بیانات، فی الحال فعال استعمال کے بیانات کی فہرست، اس بات کا اشارہ کہ آیا متغیر کو کراس حوالہ میں پڑھا یا لکھا گیا ہے، اور مخلوط کیس کے علامتوں کے ناموں کی اجازت دی گئی ہے۔ آر ایس ای سی ٹی ہدایت (صرف پڑھنے کے لیے کنٹرول سیکشن) اسمبلر کو فی سیکشن کی بنیاد پر دوبارہ داخلے کی جانچ کرنے کی اجازت دیتا ہے۔ آر ایس ای سی ٹی کو پہلے "اسمبلر ایچ میں غیر دستاویزی اور متضاد طور پر نافذ کیا گیا تھا"۔ ہائی لیول اسمبلر ٹول کٹ ہائی لیول اسمبلر ٹول کٹ ہائی لیول اسمبلر کے لیے علیحدہ قیمت کا ساتھ ہے۔ ٹول کٹ میں شامل ہیں: منظم پروگرامنگ میکرو کا ایک سیٹ-IF/ELSE/ENDIF Do/ENDO STRTSRCH/ORELSE/ENDLOOOP/ENDSRCH CASENTRY/CASE/ENDCASE SELECT/WHEN/OTHRWISE/ENDSEL۔ ایک جداکار۔ ایک "پروگرام انڈر اسٹینڈنگ ٹول" (ری انجینئرنگ ایڈ)۔ ایک ماخذ ایکس آر ای ایف یوٹیلیٹی (کراس حوالہ کی سہولت)۔ انٹرایکٹو ڈیبگ کی سہولت۔ بہتر سپر سی (ماخذ موازنہ ٹول)۔ خصوصی ورژن 7090/7094 سپورٹ پیکیج اسمبلر آئی بی ایم 7090/7094 سپورٹ پیکیج، جسے ایس یو پی پی اے کے نام سے جانا جاتا ہے، تین پروگراموں پر مشتمل ہوتا ہے جو سسٹم 360 کے لیے لکھے گئے پروگراموں کو آئی بی ایم 709، 7090، 7094، یا 7094 II پر اسمبل کرنے، جانچنے اور انجام دینے کی اجازت دینے کے لیے بنائے گئے ہیں۔ یہ کراس اسمبلر 7090 یا 7094 سسٹم پر چلتا ہے اور اس وقت استعمال ہوتا تھا جب سسٹم/360 ترقی میں تھا۔ یہ اسمبلر چھ بٹ بی سی ڈی کریکٹر سیٹ کے ساتھ ساتھ آٹھ بٹ ای بی سی ڈی آئی سی کو بھی سپورٹ کرتا ہے۔ آئی بی ایم سسٹم/360 ماڈل 20 اسمبلرز آئی بی ایم نے ماڈل 20 کے لیے دو اسمبلرز فراہم کیے: ماڈل 20 بیسک اسمبلر، اور ماڈل 20 ڈی پی ایس/ٹی پی ایس اسمبلر۔ دونوں نے ماڈل 20 پر دستیاب صرف ہدایات کی حمایت کی، بشمول منفرد ہدایات سی آئی او، ٹی آئی او، XIOB، ایس پی ایس ڈبلیو، بی اے ایس، بی اے ایس آر، اور ایچ پی آر۔ بنیادی اسمبلر سسٹم/360 بنیادی اسمبلر کا قدرے زیادہ محدود ورژن ہے ؛ خاص طور پر، علامتیں لمبائی میں چار حروف تک محدود ہیں۔ یہ ورژن 4 کے بی میموری والے سسٹم پر چلنے کی صلاحیت رکھتا ہے، اور میکرو سپورٹ آئی او سی ایس میکرو تک محدود ہے۔ کارڈ ورژن دو پاس اسمبلرز ہیں جو صرف کارڈ ان پٹ/آؤٹ پٹ کی حمایت کرتے ہیں۔ ٹیپ کے رہائشی ورژن ون پاس ہیں، جو انٹرمیڈیٹ اسٹوریج کے لیے مقناطیسی ٹیپ کا استعمال کرتے ہیں۔ سی پی ایس اسمبلی کے ساتھ جمع کیے گئے پروگرام زیادہ سے زیادہ 16 کے بی کو حل کر سکتے ہیں۔ ڈی پی ایس/ٹی پی ایس اسمبلر سسٹم/360 بی پی ایس/بی او ایس اسمبلر کا کچھ حد تک محدود ورژن ہے۔ آئی بی ایم سسٹم/360 ماڈل 44 پی ایس اسمبلر آئی بی ایم سسٹم/360 ماڈل 44 پروگرامنگ سسٹم اسمبلر ایک ایسی زبان پر کارروائی کرتا ہے جو او ایس/360 اور ڈی او ایس/360 اسمبلر زبان کا "منتخب ذیلی سیٹ" ہے۔ سب سے اہم بات یہ ہے کہ ماڈل 44 اسمبلر میں میکرو اور تسلسل کے بیانات کی حمایت کا فقدان ہے۔ دوسری طرف اس میں بہت سی خصوصیات ہیں جو دوسرے سسٹم/360 اسمبلرز میں نہیں پائی جاتی ہیں-خاص طور پر کارڈ امیج سورس ڈیٹا سیٹ کو اپ ڈیٹ کرنے کی ہدایات، جسے عام نام دیا گیا ہے، اور SETA اسمبلر متغیرات کی مضمر تعریف۔ اس میں اسٹوریج ٹو اسٹوریج (ایس ایس) ہدایات یا بائنری (سی وی بی) میں تبدیل کرنے، اعشاریہ (سی وی ڈی) میں تبدیل کرنے، براہ راست پڑھنے (آر ڈی ڈی) اور براہ راست لکھنے (ڈبلیو آر ڈی) ہدایات کے لیے کوئی سپورٹ نہیں ہے۔ اس میں ماڈل 44 کے لیے منفرد چار ہدایات شامل ہیں: ترجیحی ماسک تبدیل کریں (سی ایچ پی ایم)، لوڈ پی ایس ڈبلیو اسپیشل (ایل پی ایس ایکس)، ریڈ ڈائریکٹ ورڈ (آر ڈی ڈی ڈبلیو)، اور رائٹ ڈائریکٹ ورڈ (ڈبلیو آر ڈی ڈبلیو)۔ اس میں سورس پروگرام کو اپ ڈیٹ کرنے کی ہدایات بھی شامل ہیں، یہ فنکشن دوسرے سسٹمز (ایس کے پی ٹی او، آر ای ڈبلیو این ڈی، این یو ایم، او ایم آئی ٹی اور اینڈپ) میں یوٹیلیٹی پروگراموں کے ذریعے انجام دیا جاتا ہے۔ آئی بی ایم سسٹم/360 ٹی ایس ایس اسمبلر سسٹم/360 ماڈل 67 ٹائم شیئرنگ سسٹم کے لیے اسمبلر میں منفرد ٹی ایس ایس خصوصیات کی حمایت کرنے کے لیے ہدایات میں متعدد اختلافات ہیں۔ پی ایس ای سی ٹی ہدایت ایک پروٹو ٹائپ کنٹرول سیکشن تیار کرتی ہے جس میں پروگرام کے ذریعہ استعمال ہونے والے منتقل پزیر ایڈریس مستقل اور قابل ترمیم ڈیٹا ہوتے ہیں۔ اسمبلی جی "اسمبلی جی" واٹرلو یونیورسٹی کی طرف سے 1970 کی دہائی میں اسمبلی ایف میں کی گئی ترامیم کا ایک مجموعہ ہے (اسمبلی ایف اوپن سورس تھا/ہے)۔ بہتری زیادہ تر ان پٹ/آؤٹ پٹ کی بہتر ہینڈلنگ اور بہتر بفرنگ میں ہوتی ہے جو اسمبلیوں کو کافی تیز کرتی ہے۔ "اسمبلر جی" کبھی بھی آئی بی ایم پروڈکٹ نہیں تھا۔ غیر آئی بی ایم اسمبلرز خصوصی ماحول کے لیے کئی آئی بی ایم ہم آہنگ اسمبلرز رہے ہیں۔ یونیسیس کی یونیویک 90/60، 90/70 اور 90/80 سیریز کو آئی بی ایم فارمیٹ اسمبلر کو قبول کرنے کے لیے ڈیزائن کیا گیا تھا، کیونکہ مشین سیریز S/360 اور S/370 سے ملتی جلتی تھی۔ فوجیتسو بی ایس 2000 سیریز بھی اسی وسائل سے 370 ورک لائک کے طور پر بنائی گئی تھی جو کہ یونیویک ہے، اور اب بھی یورپ کے کچھ حصوں میں استعمال میں ہے۔ ڈگنس ایل ایل سی سسٹمز/اے ایس ایم ایک ایچ ایل اے ایس ایم سے مطابقت رکھنے والا اسمبلر ہے جو آئی بی ایم سسٹمز پر یا کراس اسمبلر کے طور پر مقامی طور پر چل سکتا ہے۔ ڈان ہیگنس کے لکھے ہوئے فری ویئر پی سی/370 کو بعد میں مائیکرو فوکس نے خرید لیا۔ Z390 ایک اسمبلر اور سسٹم 390 ایمولیٹر ہے جسے ڈان ہیگنس نے بھی لکھا ہے اور جاوا میں پروگرام کیا گیا ہے۔ یہ اوپن سورس ہے اور http://www.z390.org پین اسٹیٹ یونیورسٹی سے دستیاب ہے جس نے ASSIST نامی ایک پیکیج تحریر کیا ہے، جس میں سسٹم 370 اسمبلر اور مترجم شامل ہے۔ ٹیچیون سافٹ ویئر ایل ایل سی ٹیچیون اسمبلی ورک بینچ کی مارکیٹنگ کرتا ہے جو ونڈوز، لینکس/x86، لینکس برائے S/390 اور زیڈ سیریز، AIX اور سولرس پر چلتا ہے۔ گنو اسمبلر (گیس) او ایس/390 اور آئی بی ایم زیڈ پر لینکس کے لیے گنو کمپائلر کلیکشن (جی سی سی) کا حصہ ہے۔ اس اسمبلر کا ایک منفرد نحو ہے جو آئی بی ایم آرکیٹیکچرز کے دوسرے اسمبلرز کے ساتھ مطابقت نہیں رکھتا ہے۔ اہمیت اصل میں تمام سسٹم/360 آپریٹنگ سسٹم اسمبلر زبان میں لکھے گئے تھے، اور تمام سسٹم انٹرفیس کی تعریف میکرو تعریفوں سے کی گئی تھی۔ اعلی سطح کی زبانوں (ایچ ایل ایل) تک رسائی اس زبان تک محدود تھی جو وہ فراہم کرتی تھی، اور دیگر سسٹم کالز کو ایچ ایل ایل پروگراموں سے بلائے جانے والے اسمبلر سبروٹین کے طور پر کوڈ کرنا پڑتا تھا۔ اس کے علاوہ، آئی بی ایم نے ایک انسٹالیشن کے ذریعے او ایس کی خصوصیات کو حسب ضرورت بنانے کی اجازت دی جسے ایگزٹ کے نام سے جانا جاتا تھا-صارف کے فراہم کردہ معمولات جو عام او ایس افعال کو بڑھا یا تبدیل کر سکتے ہیں۔ ان اخراج کو اسمبلر زبان میں کوڈ کرنے کی ضرورت تھی۔ بعد میں، آئی بی ایم نے سسٹم پروگرامنگ زبان، پی ایل/ایس میں او ایس/360 کو دوبارہ کوڈ کیا، لیکن، ایک مختصر آزمائش کے علاوہ، صارفین کے لیے پی ایل/ایس مرتب جاری نہ کرنے کا فیصلہ کیا۔ ان عوامل کے نتیجے میں، اسمبلر زبان نے کئی سالوں تک آئی بی ایم سسٹمز پر نمایاں استعمال دیکھا۔ آئی بی ایم سسٹم/360 اے ایس ایس آئی ایس ٹی اسمبلر پی سی پر مبنی آئی بی ایم مطابقت پذیر مین فریم-مطابقت پذیر مشینوں کی فہرست یا ورچوئل مشینوں کو جدا کرنے والا-اسمبلی کا الٹا عمل، مشین کوڈ نوٹ سے اسمبلی جیسے ماخذ کی تعمیر نو، بیرونی لنکس آئی بی ایم ہائی لیول اسمبلر دستی ایک پروگرامر کا آئی بی ایم سسٹم/360 اسمبلر زبان (طلباء کا متن) کا تعارف زیڈ/او ایس اینڈ زیڈ/وی ایم اینڈ زیڈ/وی ایس ای زبان کے لیے ہائی لیول اسمبلر حوالہ پنکٹیلئس پروگرامر: آئی بی ایم مین فریم اسمبلر بیسک آئی بی ایم مین فریم اسمبلی لینگویج پروگرامنگ او ایس/390 اسمبلر پروگرامنگ تعارف (آرکائیو شدہ) ویب فعال آئی بی ایم اسمبلر ایف چھوٹے تجربات کے لیے اے ایس ایس آئی