تحقیق درباره پردازش اسمبلي
پردازش اسمبلي
مقدمه
وظيفه يك اسمبلر آ ن است كه كد منبع زبان اسمبلي را به كد هدف تبديل نمايد در سيستمهاي كامپيوتري ساده تر اين كد هدف همان زبان ماشين است
كه در حافظه قرار گرفته و اجرا ميگردد .
در سيستمهاي كامپيوتري پيچيده تر كد هدفي كه به وسيله اسمبلر ايجاد مي شود بايد به وسيله لينكر و يا لودر در قبل از اجرا تنظيم گردد.
اسمبلي دو گذاري
ماكرو اسمبلر مايكرو سافت يك اسمبلر دو گذاري است . اين به آن معني است
كه يك برنامه منبع زبان اسمبلي دو به وسيله پويش مي شود تا فايل كد هدف آن ايجاد شود مي توان يك اسمبلر را به صورت يك گذري طرح كرد و
بعضي اسمبلرها برنامه منبع را سه بار يا بيشتر پويش مي كنند اما بيشتر اسمبلرها
از دو گذر بهره مي برند . اين بخش به توضيح يك اسمبلر دو گذري نمونه مي پردازد.
يك مزيت نوشتن برنامه به زبان اسمبلي نسبت به زبان ماشين آن است كه در آن مي توان از شناسه ها يا نمادها براي رجوع به داده ها در سگمنت داده و دستور العمل ها در سگمنت كد استفاده نمود. براي آن كه بتوان برنامه را به زبان ماشين نوشت برنامه نويس بايد آدرسهاي داده ها و دستورالعمل ها را بداند
يك وظيفه اسمبلر آن است كه يك جدول علائم در ارتباط با هر شناسه با مشخصه هاي مختلف را تشكيل داده و آنرا حفظ كند . يك مشخصه برابر نوع يك نماد است اين انواع شامل برچسب داده ها و دستور ا لعملها نمادهائي كه مساوي ثابتها در نظر گرفته شده اند اسامي روالها اسامي ماكروها و اسامي سگمنت ها مي با شند بعضي اسمبلرها كار ترجمه برنامه منبع را با يك جدول
علامت كه حاوي مشخصه تمام نام دستور العمل هاي زبان اسامي تمام ثباتها و
نمادهاي ديگر مي باشد شروع مي كنند.
اگر نمادي مربوط به يك بر چسب و يا داده باشد آنگاه جدول علائم حاوي اندازه داده ها نيز خواهد بود. بطور مثال اگر شبه دستور زير را اسمبل
نمايد :
آنگاه بعنوان برچسب يك كلمه ثبت خواهد گرديد . بدين ترتيب
مي تواند استفاده غلط از علامت ها را تشخيص دهد . با توجه به دستور اسمبلر
فوق دستور زيررااشتباه تشخيص خواهد داد .
زيرا اندازه ثبات برابر بايت است ولي از جدول علائم بعنوان يك كلمه
ذكر شده است علا وه بر اندازه چنانچه نمادي در ارتباط با چندين كد باشد ممكن است جدول علائم تعداد كدها يا تعداد كل بايت هاي در ارتباط با نماد مزبوربرخورد نمايد مقدار ضبط شده در جدول علائم را به جاي آن قرار مي دهد. چنانچه نمادي مربوط به داده يا دستورالعمل باشد آنگاه موقعيت آن در جدول علائم وارد مي شود . اسمبلر داراي يك شمارنده موقعيت است كه اين مقدار را محاسبه مي كند معمولا در يك اسمبلر شمارنده موقعيت در ابتداي برنامه يا در ابتداي بخشهاي مهمي از برنامه صفر مي گردد .
ماكرو اسمبلرمايكرو سافت شمارنده موقعيت رادر ابتداي هر سگمنت صفر مي گردد همانطور كه اسمبلر كد منبع را پويش مي نمايد موقعيت هر داده يا دستور العمل عبارت از مقدار شمارنده موقعيت قبل از اسمبل شدن عبارت مزبور مي باشد تعداد بايت هاي مورد نياز به شمارنده موقعيت اضافه مي شود تا موقعيت
دستور العمل بعدي بدست آيد.
بعنوان يك مثال براي آنكه بدانيم شمارنده موقعيت چگونه مورد استفاده قرار مي گيرد فرض كنيد كه يك برنامه زبان اسمبلي 8088 حاوي سگمنت داده زير
مي باشد :
شمارنده موقعيت (كه به صورت چهار رقم بيان مي شود ) از آدرس 0000 شروع مي شود بنابراين در جدول علائم مقدار0000 به موقعيت نسبت
داده مي شود . سپس دستور اسمبلر ترجمه گرديده و يك كلمه براي
ذخيره مي گردد دو بايتي كه براي اين كلمه لازم هستند به شمارنده موقعيت
اضافه شده و مقدار 0002 براي آن به دست مي آ يد بنابراين وقتي اسمبلر
به نماد مي رسد مقدار شمارنده موقعيت برابر 0002 است و اين موقعيت
براي ثبت مي گردد ده بايت در با مي باشد بنابراين بعد از اسمبل شدن دستور اسمبلز شمارنده موقعيت حاوي مقدار خواهد بود
وقتي نوبت به نماد مي رسد شمارنده موقعيت حاوي مقدار است
بنابراين همين مقدار به عنوان موقعيت ذخيره مي شود
به عنوان نتيجه دستور اسمبلر شمارنده موقعيت به مقدار افزايش پيدا مي كند.
منبع : سايت علمی و پژوهشي آسمان -- صفحه اینستاگرام ما را دنبال کنید
اين مطلب در تاريخ: دوشنبه 03 فروردین 1394 ساعت: 13:16 منتشر شده است
برچسب ها : تحقیق درباره پردازش اسمبلي,پردازش اسمبلي,تحقیق اسمبلی,