به نام خدا
Assembly
Programming
برنامه نويسي به زبان اسمبلي براي كامپيوترهاي شخصي
حافظه داخلي
وحافظه فقط (RAM) دو نوع حافظه داخلي روي كامپيوتر عبارتند از:حافظه با دستيابي تصادفي
شماره گذاري مي شوند به طوري كه OO بايت هاي حافظه به ترتيب با شروع از (Ram) خواني
هرمكاني داراي يك آدرس منحصر به فردي مي باشد
شامل يك تراشه حافظه بخوصوصي است كه فقط مي تواند خوانده شود. چون دستورالعمل :ROM

هاودادها به طور دائمي در داخل تراشه هاجايگزاري شده اند نمي توانندتغيير داده شوند.سيستم

68 شروع شده ودستگاههاي ورودي / خروجي نظير K از أدرس (BIOS) ورودي – خروجي پايه

960 شروع مي K كنترل كننده ديسك سخت را مديريت مي كند. حافظه فقط خواني كه از
شودعمليات اساسي كامپيوترنظير امتحان كردن خود كامپيوتر در موقعروشن شدن ،الگوهاي نقطه
اي گرافيكي وبار كننده خود ديسك را كنترل مي كند.وقتي كه كامپيوتر را روشن مي كنيد،حافظه

RAM كنترلهاي گوناگوني را انجام داده واطلاعات مخصوص سيستم را از ديسك به حافظه ROM

بار گذاري مي كند.
ارتباط دارد كه بهتر بود درحافظه خواندن – نوشتن RAM يك برنامه نويس اصولا با حافظه : RAM

به عنوان يك برگه كاري براي ذخيره سازي موقت واجراي برنامه RAM نام گذاري مي شد.حافظه
محتوي)از بين مي رود بايد از ) RAM ها بكار مي رود چون در موقع خاموش شدن كامپيوتر حافظه
حافظه خارجي براي نگهداري برنامه ها و داده ها استفاده كنيم.وقتي كه كامپيوتر را روشن مي كنيد،
بار گذاري مي كند. سپس مي توانيد RAM بخشي از سيستم عامل ر ابه داخل ROM روال راه اندازي
را از آن درخواست كنيد. RAM انجام عملياتي نظير بار گذاري يك برنامه از ديسك به داخل
آدرس دهي داده ها در حافظه
بسته به مدل،پردازنده مي تواند در هر زمان به يك يا چند بايت از حافظه دسترسي داشته باشد عدد
0526 است نمايش آن به دو بايت يا H دهدهي 1315 را در نظر بگيريد نمايش هگزا دسيمال آن
يك كلمه از حافظه نياز دارد.آن شامل با ارزش ترين بايت يعني 05 و كم ارزش ترين بايت يعني

29 مي باشد.

سيستم داده را در حافظه به ترتيب معكوس ذخيره مي كند:بايت داراي كم ارزشتر در آدرس پايين
ترو بايت داراي ارزش بيشتر در آدرس بالاتر حافظه ذخيره مي شود.
پردازنده انتظار دارد كه داده هاي عددي در حافظه به ترتيب معكوس قرار گيرند و داده ها را مطابق
با آن پردازش مي كند .
سگمنت ها و آدرس دهي.
يك سگمنت ناحيه خاصي است كه در يك برنامه تعريف شده واز مرز پاراگراف شروع مي شود
يعني از مكاني كه همواره بر ١٦ يا ١٠ شانزده شانزدهي بخش پذير است. هر چندكه يك سمگنت

64 باشد ولي نقطه به k مي تواند در هر جايي از حافظه قرار بگيرد و در حالت حقيقي مي تواند تا
اندازه اي فضا لازم دارد كه برنامه براي اجرا شدن به آن نياز دارد.
ممكن است هر تعداد سگمنت وجود داشته باشد ، براي آدرس دهي سگمنت مورد نظر فقط لازم
است كه آدرس مو جود در يك ثبات سگمنت مناسبي را تغيير داد. ٣ سگمنت اصلي عبارتند از
سگمنت هاي داده ، پشته وكد
سگمنت كد
سگمنت كد شامل دستورالعمل هاي ماشين است اجرا مي شوند. معمولا اولين دستورالعمل اجرايي
در شروعاين سگمنت قرار دارد. وسيستم عامل به آن مكان پيوند داده مي شود تا اجراي برنامه را
سگمنت كد را آدرس دهي مي ، (cs) شروع كند همانطور كه از نام آن پيداست ، ثبات سگمنت كد

64 نياز داشته باشد ، برنامه ممكن است نياز داشته باشد كه بيش k كند.اگر ناحيه كد شما به بيش از
از يك سگمنت كد را تعريف كند.
سگمنت داده ها
سگمنت داده ها شامل داده ها ، ثابت ها و نواحي كاري يك برنامه مي باشد ثبات سگمنت داده ها
64 نياز داشته باشد در k سگمنت داده ها را آدرس دهي مي كند . "اگر ناحيه داده به بيش از (DS)

برنامه مي توانيد بيش از يك سگمنت داده را تعريف كنيد ".
سگمنت پشتر
به زبان ساده ، پشتر حاوي هر گونه داده و آدرسي است كه براي ذخيره موقت و يا جهت استفاده
سگمنت پشتر را آدرس (ss) توسط زير روال هاي فراخواني شده لازم است . ثبات سگمنت پشته
دهي مي كند.
حدود يك سگمنت
يك ثبات سگمنت حاوي آدرس شروع يك سگمنت مي باشد همانطور كه قبلا ذكر شد يك
سگمنت بر روي مرز پارا گراف شروع مي شود كه آدرسي است كه همواره بر ١٦ تقسيم پذير است
088 شروع مي شود در نظر بگيريد چون دراين مورد EOH يك سگمنت داده را از مكان حافظه
وتمام موارد ديگرراستي ترين رقم شانزده شانزدهي برابر صفر است طراحان كامپيوتر تشخيص
038E 038 به صورت EOH دادند كه ذخيره كردن رقم صفر درثبات سگمنت لازم نيست . لذا
ذخيره مي شود كه صفر سمت راست آن بديهي است. در اين كتاب هر جا لازم باشد از كروشه ها

038 استفاده خواهد شد. [ براي اشاره به سمت راست ترين صفر ما نند [ 0

آفست هاي سگمنت
در داخل يك برنامه مكان هاي حافظه نسبت به آدرس شروع سگمنت بيان مي شوند فاصله بايتي
از آدرس سگمنت تا يك مكان ديگر در داخل همان سگمنت به صورت يك آفست (جا بجايي)

يا از صفر تا 65,535 FFFFH 0000 تا H بيان مي شود. محدوده يك افست ٢بايتي مي تواند از
باشد. بنابراين اولين بايت سگمنت كه در آفست 00 ، دومين بايت در آفست 01 الي آخر تا آفست

65535 قرار مي گيرند براي مراجعه به هر مكان حافظه در يك سگمنت ، پردازنده آدرس سگمنت
موجود در يك ثبات سگمنت را با يك مقدار افست تركيب مي كند.
حاوي آدرس DS 038 شروع مي شود در نظر بگيريد. ثبات EOH يك سگمنت داده را كه از مكان

0032 بايت در H 038 مي باشد ويك دستور العمل به مكاني با آفست E[o]H سگمنت داده ها يعني
داخل سگمنت داده ها مراجعه مي كند.
03912 مي باشد. H بنا براين مكان حافظه واقعي بايت مراجعه شده به وسيله اين دستورالعمل برابر
توجه داشته با شيد كه يك برنامه ممكن است داراي يك يا چند سگمنت باشد كه مي توانند از هر
مكاني از حافظه شروع شده, اندازه آنها متفاوت بوده و به هر ترتيبي قرار بگيرند.

ظرفيت آدرس دهي
مورد استفاده قرار مي گيرد داراي قابليت PC پردازنده هاي گوناگون انيتس كه توسط كامپيوترهاي

8086 : ثبات آنهابه احوال ١٦ بيت مي باشند / هاي آدرس دهي مختلفي مي باشند.آدرس دهي 8088

چون يك آدرس سگمنت برروي مرزپاراگراف (همواره بر ١٦ تقسيم پذير است) قرار دارد ٤بيت
سمت راست آدرس آن صفر مي باشندهمانطور كه قبلا بحث شد يك آدرس سگمنت در ثبات
برابر nnnn[o] سگمنت ذخيره شده و پردازنده ٤ بيت سمت راست را به صورت شانزده شانزدهي
امكان آدرس دهي تا ١٠٤٨٥٦٠ بايت را فراهم مي كند،اگر FFFF[o]H، در نظر مي گيريد. حال o

شانزده شانزدهي را به صورت 1111 دو رويي نوشته و ٤بيتسمت راست را F مطمئن نيستيد،هر
قرار داده وسپس مقاديربيت ها را با هم جمع كنيم. o برابر
آدرس دهي 80286 :در حالت حقيقي،پردازنده ٨٠٢٨٦ عمل آدرس دهي را مثل ٨٠٨٦ انجام مي

FFFFF[o] دهد در حالت محافظت شده،پردازنده از ٢٤ بيت براي آدرس دهي استفاده مي كند، لذا
امكان آدرس دهي تا ١٦ ميليون بايت را فراهم مي كند.ثبات هاي سگمنت به عنوان انتخابگرهاي
دستيابي به آدرس سگمنت ٢٤ بيتي از حافظه عمل كرده واين مقدار را با يك آفست ١٦ بيتي جمع
مي كنند.
80386 :در حالت حقيقي اين پردازنده ها عمل آدرس دهي را خيلي شبيه / آدرس پنتيوم / 486

٨٠٨٦ انجام ميدهند. در حالت محافظت شده اين پردازنده ها از ٤٨ بيتبراي آدرس دهي استفاده مي
كنند. كه امكان آدرس دهي سگمنت ها راتا ٤ ميليون بايت فراهم مي كنند.ثبات هاي سگمنت
١٦ بيتي به عنوان انتخاب كننده دسترسي به آدرس سگمنت ٣٢ بيتي از حافظه عمل كرده واين مقدار
را به يك آفست ٣٢ بيتي اضافه مي كنند.
ثبات ها
ثبات هاي پر دازنده براي كنترل دستور العمل هاي اجرايي، مديريت آدرس دهي حافظه و انجام
بيت SS,DS,CS محاسبات بكار مي روند.ثباتها با استفاده ازنام آنها آدرس دهي مي شوند مانند
هاي يك ثبات به طور قراردادي از راست به چپ و با شروع ازصفر شماره گذاري مي شوند.
ثبات هاي سگمنت
يك ثبات سگمنت به طول ١٦ بيت مي باشد و براي آدرس دهي ناحيه اي از حافظه كه به عنوان
سگمنت جاري شناخته مي شودبكار مي رود چون يك سگمنت روي مرز پاراگراف تنظيم مي
در نظر گرفته مي شوند. o شوند، ٤بيت سمت راست آدرس آن در ثبات سگمنت برابر
حاوي آدرس شروع سگمنت كه در يك برنامه است. اين آدرس سگمنت بعلاوه :CS ثبات هاي
آدرس دستورالعملي راكه براي اجرا واكشي (Ip) يك مقدار آفست درثبات اشاره گر دستورالعمل
لازم نيست. cs مي شود نشان مي دهد. برنامه نويسي معمولي مراجعه به ثبات
حاوي آدرس شروع سگمنت يك برنامه است. دستورالعمل ها براي مراجعه به داده ها از : DS ثبات
اين آدرس استفاده مي كنند.اين آدرس بعلاوه يك مقدار آفست در داخل يك دستورالعمل واقعي
مكاني در سگمنت داده ها را مشخص مي كند.
امكان پياده سازي پشته اي را كه يك برنامه براي ذخيره كردن موقت آدرس ها وداده ها : SS ثبات
استفاده مي كند . سيستم ، آدرس شروع سگمنت بعلاوه يك مقدار افست درثبات اشاره گر پشته
كلمه جاري در پشته را كه آدرس دهي مي شود، نشان مي دهد.در برنامه نويسي معمولي لازم (sp)

مراجعه كنيد. ss نيست مستقيما به ثبات
توسط برخي عمليات رشته اي براي مديريت آدرس دهي حافظه بكار مي رود در اينجا : ES ثبات

ES ثبات انديس)مرتبط است در برنامه اي كه لازم است از ) DI سگمنت اضافي)با ثبات ) ES ثبات
استفاده شود با يك آدرس سگمنت مناسبي مقدار دهي اوليه مي شود.
ثبات هاي سگمنت اضافي كمكي روي پردازنده هاي ٨٠٣٨٦ و بعد از آن. : FS,GS ثبات هاي
ثباتهاي اشاره گر
BP,SP,IP: سه ثبات اشاره گر عبارتند از
حاوي آدرس آفست دستور العمل ٥ بعدي است IP ثبات ١٦ بيتي (IP) : ثباتاشاره گر دستورالعمل
دستورالعمل جاري را IP مرتبط مي باشد. به اين معني كه ثبات CS با ثبات IP كه اجرا خواهد شد
مراجعه نمي كنيد IP در سگمنت كه اجرايي جاري نشان مي دهد. معمولا در يك برنامه به ثبات
براي امتحان كردن يك برنامه مقدار آن را تغيير DEBV ولي مي توانيد در موقع استفاده از برنامه 6

مي EIP توسع يافته ٣٢ بيتي به نام IP دهيد. ٨٠٣٨٦ وپردازنده هاي بعد از آن داراي يك ثبات

514 مي باشد براي پيدا كردن H حاوي IP 39 و B4[o] H حاوي CS باشند. در مثال ، ثبات
جمع مي كند. IP را با افست موجود در CS دستورالعمل اجراي بعدي ,پردازنه آدرس موجود در
آدرس IP بعلاوه آدرس افست در CS 39 آدرس سگمنت در B40H+514H=3A054H

دستورالعمل بعدي.
مرتبط