You can edit almost every page by Creating an account. Otherwise, see the FAQ.

Norsk Data Assembler

از EverybodyWiki Bios & Wiki
پرش به:ناوبری، جستجو

خطای اسکریپتی: پودمان «AfC submission catcheck» وجود ندارد. MAC یک اسمبلر ماکرو برای کامپیوترهای خطوط NORD-1 ، NORD-10 و ND-100 از Norsk Data بود.

محدودیت ها[ویرایش]

مونتاژ کننده چندین مشکل داشت که امروزه عجیب و غریب یا عجیب تلقی می شوند.

طول شناسه[ویرایش]

مانند بسیاری از اسمبلرها، MAC برای طول نام متغیرها محدودیتی قرار داد ، با این حال، به جای اینکه به سادگی نامهای بزرگتر از حداکثر طول را قبول نکند، فقط پنج حرف آخر یک شناسه را حفظ کرد و قسمت اول نام را نادیده گرفت. دلیل حفظ 5 مورد آخر این بود که متفاوت بودن متغیرهایی مانند MY_ARRAY1 و MY_ARRAY2 قابل تشخیص باشند. نتیجه این بود که حافظه داخلی برخی از نام ها بسیار عجیب بود و گاهی اوقات درک آن سخت بود زیرا نام هایی باترتیب هایی مانند RRAY1 و RRAY2 یکسان می شدند. این رفتار باعث شد که برخی از برنامه نویسان از نوشتن فقط پنج حرف آخر یک نام در کد برنامه خود استفاده کنند زیرا به هر حال اسمبلر بقیه را نادیده می گرفت. به دلیل مشکلی که خواننده انسانی در درک معنای نام با آن مواجه بود، درک کد بسیار دشوارتر شد. این منجر به استفاده مجدد کمتر از کد در سیستم شد.

ترجمه به کد ماشین[ویرایش]

ویژگی دیگر این بود که اسمبلر با جمع کردن "مقدار" همه نمادها در یک دستورالعمل برای تشکیل کد واقعی ماشین کار می کرد. برای مثال برای کپی کردن محتویات رجیستر X در ثبات A باید بنویسید:

COPY SX DA

اسمبلر در داخل خود یک مقدار عددی برای "COPY"، یک مقدار دیگر برای "SX" و یک مقدار سوم برای "DA" داشت. با جمع کردن آنها با هم دستور ماشین واقعی بدست آمد. با این حال، اگر برنامه نویس اشتباه میکرد و آن را تایپ میکرد (توجه داشته باشید که هر دو رجیستر، ثبات های "منبع" هستند)داشتیم:

COPY SX SA

ماشین کاری را که واقعاً مورد نظر برنامه نویس بود انجام نمی دهد و خطایی هم ایجاد نمی کرد. در عوض اسمبلر برنامه را می پذیرد اما دستورالعمل COPY ترجمه نمی شود. بخش SX + SA به احتمال زیاد منجر به مقدار یک ثبات سوم می شود یا سرریز می شود به طوری که بخش عملیاتی دستورالعمل تغییر می کند و آن را از کپی به عملیات ناخواسته دیگر تغییر می دهد.

کتابخانه تماس استاندارد[ویرایش]

موضوع دیگر برای برنامه نویسان اسمبلر به طور کلی لیست تماس های به اصطلاح مانیتور (MON) است. دستور MON معادل دستورالعمل INT موجود در CPU های اینتل است. با این حال، در حالی که آنها در ابتدا مجموعه خوبی از توابع برای نوشتن در یک فایل، خواندن از یک فایل و غیره داشتند. به سرعت به مجموعه ای از توابع موقتی تبدیل شدند. به عنوان مثال تابعی است که در ابتدا برای خروجی 8 بایت ذخیره شده در 4 رجیستر (A، D، T و X) طراحی شده بود. به سرعت شخصی با داشتن بایت ها در برخی از ثبات های دیگر، یک تابع جدید برای خروجی از آن ثبات ها ایجاد کرد. این باعث شد که برنامه نویس تعداد زیادی از توابع خروجی داشته باشد که تقریباً یک کار را انجام می دهند. در روزهای آخر SINTRAN ، مشکل پیدا کردن کدهای موجود برای این تماس‌های سیستمی بود، زیرا همه 256 آنها قبلاً توسط چندین تابع تقریباً یکسان گرفته شده بودند. بنابراین، فراخوانی های مانیتور چند منظوره توسعه یافته وارد صحنه می شوند که در آن یک تماس مانیتور می تواند تعدادی عملکرد را با یک کد تابع مشخص شده در یک ثبات که تعیین می کند کدام یک از زیربرنامه های آن اجرا شود، انجام دهد.الگو:Norsk Data رده:اسمبلرها



This article "Norsk Data Assembler" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Norsk Data Assembler. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.



Read or create/edit this page in another language[ویرایش]