تبليغاتX
UNiComp.iR | Download Direct Tutorials Video , Film | دانلودمستقیم فیلم آموزشی،کتاب،جزوه،مقاله

زبان ماشین و اسمبلی - جلسه چهارم


آشنایی با زبان ماشین در کامپیوتر های آی بی ام 360-370 

در فصل گفتیم  که واحد کنترل شونده در یک کامپیوتر ، دستورالعمل است. دستورات بصورت عددی رمز بندی شده و در حافظه اصلی قرار دارند. مجموعه ای از دستورات که به ترتیب خاصی اجرا می شوند تشکیل یک برنامه را می دهند  ، و در حقیقت  عمل برنامه نویسی  یعنی نوشتن دستورالعمل ها بر اساس الگوریتم از پیش تعیین شده است  . هر دستور شامل یک رمز دستور  است که نوع عملی را که باید توسط کامپیوتر انجام گیرد مشخص می نماید. همچنین دستورات  شامل آدرس های عملوند ها هستند ، که خانه هایی از حافظه یا ثباتهائی را که در عملیات کامپیوتر شرکت می نمایند مشخص می کنند.

دستورالعمل ها بر حسب زیر سیستم هائی که سروکار دارند می توان به طریق زیر  دسته بندی نمود :

 

دستورالعمل های محاسباتی  : این دستورات  اط طریق زیر سیستم کنترل ، دستور اجرای عملی را به قسمت محاسبه و منطق صادر  می کنند.

 

دستورالعمل های  ورودی- خروجی :  این دستورات با وسائل ورودی و خروجی  سروکار داشته و به کمک آنها ، اطلاعات  از وسایل جانبی مثل صفحه کلید  ، دیسک و غیره دریافت می شود و به چاپگر ، دیسک و یا صفحه تلویزیون  ارسال می گردد.

 

دستورالعمل های  انتقال اطلاعات :  این دستورات با حافظه اصلی سروکار داشته و اطلاعات   را از یک مکان  به مکان دیگر در حافظه منتقل می کند ، که گاهی نیز در حین انتقال تغییر مختصری  در اطلاعات  می دهند.

 

دستورالعمل های کنترل : این دستورالعمل ها جریان عادی  اجرای دستورات را عوض می کند  و اینکار با تغییری که در کلمه وضعیت  برنامه داده  می شود انجام می گیرد . از انواع  معمول و مهم  دستورالعمل ها ی کنترل  ، دستورات نوع انشعاب شرطی می باشند که اجرای آنها  یک آزمون روی  کلمه وضعیت انجام داده  و سپس بر حسب اینکه نتیجه آزمون چه باشد ، دستورالعمل  بعدی (جریان عادی) و یا  دستورالعمل  دیگری در محل دیگری از برنامه اجرا می گردد. اهمیت این نوع  دستورات در این است  که می توان  بوسیله  آن در برنامه  حلقه تکرار  ایجاد نمود  و همچنین تصمیم گیری کرد. در قسمت بعد نحوه آدرس دادن به عملوند ها را توضیح می دهم .

 

آدرس دادن عملوند ها  در زبان ماشین 

وقتی عملوند در یک ثبات باشد بوسیله شماره آن ثبات ، آدرس داده می شود. آدرس ثبات عددی است بین 0 تا 15  که توسط چهار بیت از 0000  تا 1111 ، مشخص می گردد . من در مثالها برای سادگی این عدد را بوسیله یک رقم در مبنای 16 ( از 0 تا F ) نمایش می دهم.

در مواردی که عملوند  در حافظه اصلی قرار دارد آدرس آن در دستور  می تواند به یکی از دو طریق زیر بیان شود.

1-       محتوی یک ثبات را با یک کمیت 12  بیتی بنام تفاوت مکان جمع می کنیم و نتیجه  آدرس عملوند  در حافظه  خواهد بود.در این مورد ثبات  مورد استفاده ثبات پایه و یا به طور خلاصه پایه خوانده می شود .

 

2-       محتوی یک ثبات پایه را با محتوی ثبات دیگر (  یا همان ثبات)  بنام اندیس و یک تفاوت مکان  که 12  بیت است جمع می نمائیم  که حاصل آدرس عملوند است.

 

دو روش فوق نحوه محاسبه آدرس موثر ( آدرس واقعی داده) عملوند  را بیان می کنند.

 

بعضی از دستورات عملوند هایی را که بوسیله ثبات پایه و تفاوت  مکان ، آدرس داده می شوند بکار می برند . بعضی دیگر عملوند هایی  استفاده می کنند که آدرس آنها بوسیله ثبات پایه و اندیس و تفاوت مکان  مشخض می گردند. برای اینکه بتوانیم دستورات را بطور صحیح  در برنامه بکار ببریم  باید نحوه آدرس دادن هر یک را بدانیم  . همانطور که خواهیم دید رمز دستورالعمل  نحوه آدرس دهی عملوند را مشخص می نماید .

بعد از اینکه  مجموع  محتوی ثبات  پایه و تفاوت مکان  یا در مورد دیگر مجموع محتوی پایه و  تفاوت مکان و محتوی اندیس محاسبه شد فقط 24  بیت کم ارزش تر ( 24 بیت سمت راست) به عنوان  آدرس تلقی می شود . برای سادگی در نوشتن ، محتوی ثبات ها ، تفاوت مکان ها و نیز آدرس های واقعی را در مثالها در مبنای 16  نشان می دهم . همچنین اطلاعاتی  که به همراه برنامه توسط سیستم های 370 – 360  در لیست  خروجی ظاهر می شوند در مبنای 16 می باشند  بنابراین لازم است ما هم  با این طریقه نمایش آشنایی بیشتر حاصل کنیم.

 

اگر در دستورالعمل به جای ثبات پایه  و یا ندیس ، صفر قرار دهیم بدان معنی است که در محاسبه آدرس عملوند ثبات پایه و یا ثبات اندیس شرکت   ندارد. این مورد  بدین منظور  قرار داد شده است تا در مواردی که نخواهیم پایه یا اندیس  در تشکیل آدرس نقشی داشته باشد ، بدینوسیله  آنها را از شرکت در تشکیل آدرس خارج می نمائیم.

 

مثال :   فرض کنید دستورالعملی  برای محاسبه آدرس موثر عملوند از ثبات پایه  و تفاوت مکان استفاده می نمائید . اگر ثبات پایه ، ثبات 9 و محتوی آن 00006844 نیز  تفاوت مکان 00E باشد آدرس موثر عملوند  را پیدا کنید؟

 

 

حل :  

 

آدرس موثر =  تفاوت مکان + محتوی ثبات پایه 

 

00006844+

00E 

=     006852

 

 محاسبه  این آدرس ، محتویات  ثبات 9 تغییری نمی کند  . عمل جمع در یک ثبات مخصوص  در واحد پردازش مرکزی که قابل آدرس دادن نیست انجام می گیرد .

مزیت عمده این شیوه های آدرس دهی عملوند ، نسبت به روش آدرس دهی مستقیم این است که طول دستورالعمل  کوتاه خواهد شد  وضمن صرفه جوئی در استفاده  از حافظه  سرعت اجرا نیز بیشتر می شود. همانطور که دیدیم  در یک دستورالعمل که برای آدرس دهی عملوند  از ثبات پایه  و تفاوت   مکان استفاده  می نماید 16 بیت برای مشخص نمودن آدرس عملوند کفایت می کند. یعنی 4 بیت برای معرفی ثبات پایه و 12 بیت برای تفاوت مکان اختصاص  می بابد . در حالیکه اگر آدرس واقعی قرار بود بطور کامل در دستورالعمل  قرار بگیرد 24 بیت لازم بود.

انتقال  یک برنامه برای اجرا شدن را به داخل حافظه اصلی " بار شدن " گویند. سیستم عامل بخشی از حافظه داخلی   را که در دسترس  می باشد  به این برنامه اختصاص  می دهد.  در دفعات  مختلفی که برنامه به داخل حافظه بار می شود ممکن است جای ثابتی به آن اختصاص داده نشود. برنامه باید  همواره بتواند  هر دفعه مستقل  از مکانی که برنامه قرار دارد اجرا شود. به بیان دیگر بار کردن برنامه در آدرس های متفاوت در هر اجرا  نباید اشکالی در کار اجرای برنامه ایجاد نماید. این گفته به معنی  آن است که آدرس عملوند ها در دستورات  هر دفعه  باید  طوری  تعدیل شوند ، که همواره  به محل واقعی عملوند ها  اشاره نمایند.

مرحله  بار شدن برنامه  به داخل  حافظه و  تعدیل آدرس های آنرا  اصطلاحا  جابه جا سازی  گویند. در بعضی کامپیوتر ها تعدیل آدرس عملوند هر دستورالعمل ، حین بار شدن برنامه صورت  می گیرد. تا بدینوسیله  آدرس ها با جائی  که برنامه و داده های  مربوط به آن در حافظه قرار می گیرند متناسب باشند. در سیستمهای 360 – 370 این عمل تعدیل با تغییر محتویات ثبات به سادگی  امکان پذیر  است . بنابراین  یک مزیت دیگر  آدرس دهی در سیستم های 360 – 370  سادگی در جا به جا  کردنم برنامه  هاست .

در خیلی از موارد داده هایی که در خانه  های متوالی در حافظه قرار گرفته اند بوسیله گذرهای  متوالی در یک حلقه آدرس داده می شوند.  به عنوان مثال در زبان فرترن  ، عناصر یک آرایه یکی پس از دیگری  و توسط  داخل یک حلقه DOS می توانند  مورد پردازش قرار گیرند.  از این بیان نتیجه  می شود که میدان متعلق به آدرس در دستورات داخل حلقه طوری باید تغییر کند که به داده های موجود  در خانه های متوالی حافظه اشاره کند.

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

یک مزیت دیگر سازمان آدرس در سیستم های 360 – 370   بکار گرفتن ثبات اندیس است که می توان  اعمال محاسباتی را روی محتویات  آن  انجام داد  که یک روش  راحت  و مناسب  برای  متغیر ساختن آدرس موثر می باشد .

 

 

قالب دستورات در زبان ماشین آی بی ام 

 

همانطور که قبلا بیان شد  هر دستور در زبان ماشین مجموعه ای از صفر و یک می باشد هر دستور دارای یک رمز دستور و یک یا چند  عملوند  می باشد. بسته به نوع دستور و تعداد عملوند ها طول دستور نیز فرق می کند. در ماشین آی بی ام 6  فرمت قالب مختلف  برای دستورات  وجود دارد. این 6 فرمت در نحوه آدرس دهی دستورات با هم اختلاف  دارند. مثلا در دسته ای عملوند در ثبات است ، در دسته ای دیگر  در خود دستور  و در تعدادی  نیز با ثبات پایه ،  ثبات اندیس و تفاوت مکان آدرس داده می شود. بخاطر این تفاوت ها مقدار حافظه  اشغال شده بوسیله دستورات ، 2 بایت ، 4 بایت  و یا 6 بایت است. در تمام دستورات یک ( یا دو)  بایت اول به رمز دستور ، که نوع عمل را مشخص می نماید  اختصاص  می یابد.

 

انواع دستورات به شرح زیر می باشد :

 

دستورات  نوع RR 

 

این نوع دستورات  دارای  دو عملوند می باشند که هر دو در ثبات ها  قرار دارند . آدرس اولین عملوند در بیت های 11-8 و آدرس  دومین عملوند در بیت های 15-12  دستور قرار دارند. چون  برای مشخص  کردن شماره ثبات هر ثبات  4 بیت و نیز برای  رمز دستور یک بایت لازم است  پس دستور RR  جمعا به 2 بایت  طبق شکل زیر ، نیاز دارد .

 

1zf0n68.jpg

                        
 

Search Engine Submission - AddMe