اسمبلی براغی شما دنشجویان
به نام خدا
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دستورالعمل بعدي
.مرتبط
