دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

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

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 7 , از مجموع 7

موضوع: سخت افزار 8086/8088

  1. #1
    کـــــــاربر فــــعال
    رشته تحصیلی
    کامپیوتر(مهندسی نرم افزار)
    نوشته ها
    18,304
    ارسال تشکر
    4,182
    دریافت تشکر: 19,008
    قدرت امتیاز دهی
    220
    Array

    پیش فرض سخت افزار 8086/8088

    در همین جا ذکر این نکته ضروری به نظر می رسد که دو ریزپردازنده 8086 و 8088 از نظر نرم افزاری تقریبا هیچ تفاوتی باهم ندارند و بنابراین در بحث نرم افزار هیچ تفاوتی بین دو ریزپردازنده نیست. در بحث سخت افزار این دو باهم متفاوتند. البته اگر در تمام بحث ها، اشاره ای به تفاوت بین این دو نشده باشد به معنی آن است که بحث برای هر دو ریزپردازنده صادق است و اگر تفاوت هایی داشته باشند در همان بحث بین دو ریزپردازنده 8088 و 8086 تفکیک خواهد شد.
    در ابتدا ساختمان داخلی ریزپردازنده را به صورت بلوک دیاگرام بررسی خواهیم کرد و عملکرد کلی ریزپردازنده را با در نظر داشتن بلوک های مهم در آن، مورد نظر قرار خواهیم داد.
    در مرحله بعد ثباتهای ریزپردازنده را بصورت کلی بررسی کرده و به کاربرد اختصاصی هر کدام نیز اشاره ای خواهیم کرد.
    بعد از شناخت ثباتها، عملکرد حافظه را در کنار ریزپردازنده و در حد کلیات بررسی خواهیم نمود تا ادامه بحث با ثباتهای قطعه مفهوم باشد و نحوه کار ریزپردازنده در آدرس دهی حافظه با استفاده از این ثباتها برای خواننده ملموس تر گردد.
    و در نهایت در آخر بحث سخت افزار در مورد عملکرد ریزپردازنده با توجه به اطلاعاتی که در این فصل به دست امده بیشتر متمرکز خواهیم شد.
    هدف کلی از این فصل، دادن شناخت بیشتر به خواننده در مورد ساختمان داخلی و عملکرد اجزاء مختلف آن است
    شنبه : یارب العالمین 1شنبه : یا ذاالجلال والاکرام
    2شنبه : یا قاضی الحاجات 3شنبه : یاارحم الراحمین
    4شنبه : یا حی یاقیوم 5شنبه : لا اله الا الله الملک الحق المبین
    جمعه : اللهم صل علی محمد وال محمد وعجل فرجهم

  2. کاربرانی که از پست مفید آبجی سپاس کرده اند.


  3. #2
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : سخت افزار 8086/8088

    ساختمان داخلی ریزپردازنده 8086/8088

    ریزپردازنده 8086 یک ریزپردازنده 16 بیتی است. یعنی در هر زمان حداکثر می تواند 16 بیت داده را پردازش نماید. مفهوم دقیق پردازش در این بحث یعنی عملیات محاسباتی یا منطقی؛ که عملیات جابجایی را هم در این زمره قرار دادیم. این ریزپردازنده تقریبا از 29000 ترانزیستور تشکیل شده است.

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


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

    اینک به بررسی تک تک بلوک های فوق الذکر می پردازیم:

    واحد محاسباتی/منطقی (ALU) که دانشجویان قبلا با این قسمت آشنا شده اند، و تمام اعمال محاسباتی و منطقی در این واحد انجام می گیرد. در واقع تمام عملیات اصلی ریزپردازنده در نهایت به ریزعملیاتی تقسیم می شود که آن ریزعملیات در واحد ALU به سرانجام می رسد. مثل عمل جمع که با مدار جمع کننده ایی که در داخل ALU وجود دارد صورت می پذیرد.

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

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

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

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

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

    صف دستورالعمل ها
    در این ریزپردازنده از یک بافر برای دستورالعمل ها به نام صف دستورالعمل ها استفاده شده است. طول این صف در ریزپردازنده 8086 شش بایت و در 8088 چهار بایت می باشد. این صف به منظور افزایش کارآیی و سرعت عملکرد CPU، در نظر گرفته شده است و به صورت FIFO عمل می کند یعنی کدهایی که اول وارد این صف شده اند، اول هم از صف خارج می شوند.

    عملکرد این صف بدین صورت است که دستورالعمل ها از خارج ریزپردازنده (حافظه) وارد این صف می شود (عمل واکشی یا fetch) و واحد اجرا هم دستورالعمل ها را از این صف برداشته و اجرا می کند. پس ریزپردازنده دو کار متفاوت و همزمان انجام می دهد: یکی واکشی کردن دستورالعمل ها از حافظه که توسط BIU انجام می شود و دیگری (که می تواند همزمان با این کار انجام گیرد) اجرای دستورالعملی که واحد EU از صف دستورالعملها واکشی کرده و در حال اجراست.

    بنابراین در شرایط عادی کار (توضیحات بیشتر در سایر مقالات میکرو رایانه) BIU مستقل از EU، دستورالعمل ها را از حافظه واکشی کرده و در صف دستورالعمل ها قرار خواهد داد و EU هم مستقل از کار BIU دستورالعمل ها را از جلو صف برداشته و اجرا خواهد کرد. یعنی دو کار متفاوت و همزمان که صرفا با همان ایده قرار دادن بافر کوچک (صف) در داخل ریزپردازنده این کار عملی شده است و انجام همزمان این دو عمل باعث بهبود کیفیت کار ریزپردازنده و بالا رفتن سرعت آن می شود و زمان واکشی دستورالعمل ها از حافظه را به طور قابل توجهی حذف می کند. به این ایده اصطلاحا پردازش خط لوله اطلاق می شود. در زیر دو شکل رسم شده و و این ایده با شکل مقایسه شده است:


    شکل بالایی برای ریزپردازنده ایی است که ایده صف در آن پیاده نشده است و در شکل پایینی هم همان ریزپردازنده با در نظرگرفتن صف دستورالعمل ها رسم شده است.(8086/8088) همانطوریکه ملاحظه می کنید زمان واکشی دستورات از حافظه، برای ریزپردازنده دوم به طور قابل توجهی حذف شده است.

    در ابتدا که دستورالعملی برای اجرا وجود ندارد EU کاری انجام نمی دهد ولی در همان موقع BIU در حال واکشی دستورالعمل از حافظه است.
    uody

  4. #3
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : سخت افزار 8086/8088

    ثبات های عمومی ریزپردازنده 8086/8088

    همانطوریکه اشاره شد ریزپردازنده 8086/8088 یک ریزپردازنده 16 بیتی است. پس ثبات های عمومی آن 16 بیتی است و می توانند همزمان 16 بیت داده را در خود جای دهند. (در فهرست مقالات میکرو رایانه جستجو کنید) ریزپردازنده 8086/8088 دارای چهار ثبات عمومی به نام های ax , bx , cx , dx است، که هر کدام از آنها به صورت 8 بیتی هم قابل استفاده است و به ترتیب به نام های al , ah , bl , bh , cl , ch , dl , dh نامیده می شوند. یعنی مثلا نیمه کم ارزش ثبات ax ثبات al و نیمه پرارزش آن ثبات ah است و ...

    بدین ترتیب با استفاده از این ثبات های 8 بیتی ، ریزپردازنده 8086/8088 همانند ریزپردازنده های 8 بیتی قادر خواهد بود پردازش بر روی داده های 8 بیتی را هم به راحتی انجام دهد. معمولا شماره گذاری بیت های ثبات های ریزپردازنده از شماره صفر خواهد بود. پس بیت شماره صفر هر ثبات، کم ارزش ترین بیت و بیت شماره 7 (در ثبات های 8 بیتی) یا 15 (در ثبات های 16 بیتی) پرارزش ترین آن خواهد بود. با وجود آنکه در اکثر دستورالعمل ها می توان تمام ثبات های عمومی را مورد استفاده قرار داد ولی در بعضی موارد نقش خاصی بر عهده هر کدام گذاشته می شود که در اینجا به بعضی از آنها اشاره می شود. (توضیحات بیشتر بعدا" و بتدریج داده خواهد شد):

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

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

    ثبات cx
    به نام ثبات شمارنده نامیده می شود. در عملیات تکرار و حلقه ها و عملیات رشته از این ثبات به عنوان شمارنده استفاده می گردد. همچنین این ثبات در عملیات جابجایی و چرخش های چندگانه مورد استفاده قرار می گیرد.

    ثبات dx
    به نام ثبات داده ها نامیده می شود. از این ثبات به منظور ذخیره آدرس ها در عملیات i/o استفاده می شود. در عملیات ضرب و تقسیم هم کاربرد اختصاصی دارد.
    uody

  5. #4
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : سخت افزار 8086/8088

    ثبات های اشاره گر

    ریزپردازنده 8086/8088 دارای پنج ثبات اشاره گر است که برای آدرس دهی حافظه استفاده می شود. دو ثبات اشاره گر به نام های bp و sp که برای آدرس دهی حافظه پشته به کار می رود. دو ثبات شاخص si و di و بالاخره ثبات ip که ثبات اشاره گر دستورالعملهاست. نکته مهم در مورد ثبات های اشاره گر آن است که این ثبات ها فقط به صورت 16 بیتی قابل استفاده هستند و به صورت 8 بیتی نمی توان از آنها استفاده کرد.از محتویات این ثباتها به عنوان آدرس موثر برای آدرس دهی حافظه استفاده می شود. البته در دستورالعمل ها می توان از محتویات آنها به عنوان عملوندهای محاسباتی یا منطقی هم استفاده کرد. هرچند استثناهایی نیز وجود دارد که در جای خود توضیح داده خواهد شد.

    ثبات sp
    به نام ثبات اشاره گر پشته نامیده می شود. این ثبات در ریزپردازنده های دیگر هم معمولا به این نام نامیده شده و به محل بالای حافظه پشته اشاره می کند. به عبارت دیگر همواره آدرس موثر آخرین محل از حافظه پشته که داده در آن قرار گرفته، در داخل ثبات sp قرار دارد. بعدا خواهیم دید که در ریزپردازنده 8086/8088 آدرس واقعی بالای حافظه پشته از ترکیب محتویات ثبات sp با ثبات قطعه ss به دست می آید.

    ثبات bp
    به نام ثبات اشاره گر پایه نامیده می شود. با استفاده از این ثبات می توان داده مورد نظر را در هر محلی از حافظه پشته قرار داد و یا از آن دستیابی کرد. همانند ثبات sp برای محاسبه آدرس فیزیکی از ثبات قطعه ss استفاده می شود.

    ثبات های شاخص si و di
    ریزپردازنده 8086/8088 دارای دو ثبات شاخص می باشد. نقش آنها همانند نقش سایر ثبات های شاخص در پردازنده هاست. محتویات این ثبات ها می توانند به منظور به دست آوردن آدرس موثر با محتویات سایر ثبات ها (که بدین منظور به کار برده می شود) جمع گردد. البته از این ثبات ها هم می توان در عملیات محاسباتی و منطقی به عنوان عملوند استفاده کرد. همانند سایر ثبات های اشاره گر این ثبات ها فقط به صورت 16 بیتی قابل استفاده هستند.

    ثبات شاخص si که به نام ثبات شاخص مبدا نامیده می شود، کاربرد اختصاصی آن در دستورات رشته برای آدرس دهی مبدا است. ثبات شاخص di نیز به نام ثبات شاخص مقصد نامیده شده و کاربرد اختصاصی آن در دستورات رشته و برای آدرس دهی مقصد است.

    ثبات اشاره گر دستورالعمل ها (ip)
    در پردازنده های دیگر ثباتی به نام pc وجود دارد که به عنوان شمارنده برنامه عمل می کند. در ریزپردازنده 8086/8088 این ثبات به نام ثبات اشاره گر دستورالعمل ها نامیده می شود. همانند سایر ثباتهای اشاره گر 16 بیتی بوده و به عنوان آدرس موثر برای به دست آوردن آدرس های برنامه و دستورالعمل ها استفاده می گردد.

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

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

    تذکر این نکته ضروری است که در پردازنده های معمولی به دلیل عدم وجود صف دستورالعمل ها، هر دستورالعملی که از حافظه واکشی شود بلافاصله نیز اجرا می گردد ولی در پردازنده 8086/8088 به دلیل وجود صف دستورالعملها، دستورالعمل واکشی شده ابتدا در این صف قرار می گیرد. بنابراین شمارنده برنامه یا pc در سایر ریزپردازنده ها یک تفاوت جزئی با اشاره گر دستورالعملها (ip) در 8086/8088 خواهد داشت: Pc همواره به دستور بعدی اشاره می کند که به وسیله ریزپردازنده(های معمولی) اجرا خواهد شد ولی ip در 8086/8088 به دستورالعمل بعدی اشاره می کند که به وسیله واحد biu از حافظه واکشی خواهد شد و به همین جهت به جای لفظ شمارنده برنامه از آن با نام اشاره گر دستورالعمل ها یاد می شود.
    uody

  6. #5
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : سخت افزار 8086/8088

    ثبات پرچم ها

    ثبات پرچم ها در ریزپردازنده 8086/8088 نیز همانند سایر ثباتهای آن 16 بیتی است. تک تک بیت های آن به صورت مستقل تحت تاثیر عملیات محاسباتی یا منطقی قرار می گیرند که در ALU انجام می شود. البته 3 بیت پرچم کنترلی هم در آن قرار داده شده که می توان آنها را صفر و یا یک نمود و دستوراتی در ریزپردازنده وجود دارد که با توجه به مقادیر این سه بیت کارهای متفاوتی انجام می دهند.


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

    در ریزپردازنده 8086/8088 بیت های پرچم به دو دسته تقسیم می شوند: دسته اول بیت های پرچم کنترل و دسته دوم بیت های پرچم شرطی. بیت های پرچم کنترل سه بیت D , I , T هستند که عمل کنترل ریزپردازنده را انجام می دهند. بدین صورت که قبل از اجرای بعضی دستورات (که این بیت ها از آنها استفاده می کنند) باید مقادیر این سه بیت تعیین شده باشد. در صورتی که بیت های پرچم شرطی تحت تاثیر آخرین عمل محاسباتی یا منطقی انجام یافته در ALU قرار می گیرند و عبارتند از : S , Z , P , A , O , C. بنابراین مقادیر این بیت ها بعد از اجرای دستورات (و در اثر اجرای آنها) مشخص می شود. به بررسی تک تک آنها می پردازیم:

    پرچم C
    پرچم نقلی بوده و به اختصار CF نامیده می شود. مشخص کننده بیت نقلی (انتقالی) خروجی مربوط به باارزش ترین بیت در طی عملیات محاسباتی است. بیت شیفت یافته در عملیات جابجایی نیز در این پرچم قرار می گیرد. این بیت همچنین مشحص کننده بیت قرضی در عملیات تفریق نیز هست. عملیات ممکن است به صورت 8 بیت یا 16 بیت باشد. بنابراین به طور خلاصه می توان گفت که اگر پس از عملیات محاسباتی بیت نقلی یا بیت قرضی وجود داشته باشد، این پرچم یک خواهد شد، در غیر این صورت صفر می شود.

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

    پرچم A
    بیت پرچم نقلی کمکی نامیده می شود و به اختصار آن را با AF نشان می دهیم. مشخص کننده بیت نقلی کمکی یا بیت قرضی کمکی است. یعنی مشخص کننده بیت نقلی یا بیت قرضی مربوط به چهار بیت اول از هشت بیت کم ارزش حاصل عملیات است. از این بیت برای تصحیح و تطبیق عملیات محاسباتی دهدهی (BCD) استفاده می شود.

    پرچم O
    بنام بیت پرچم سرریز نامیده می شود و به اختصار آن را با OF نشان می دهیم و مشخص کننده سرریز در عملیات محاسباتی هشت یا شانزده بیتی است. اگر حاصل عملیات محاسباتی هشت بیتی در هشت بیت جا نشود و همچنین حاصل عملیات محاسباتی شانزده بیتی در شانزده بیت جا نشود سرریز اتفاق می افتد و این بیت یک خواهد شد و در غیر این صورت صفر است.
    در CPU ، بیت سرریز از حاصل XOR بیت های نقلی آخر و ماقبل آخر به دست می آید. (XOR بیت های نقلی وارد شده و خارج شده از باارزش ترین بیت)

    پرچم Z
    پرچم صفر نامیده می شود و به اختصار آن را با ZF نشان می دهیم و مشخص کننده صفر یا غیر صفر بودن حاصل عملیات است. پس از اتمام عملیات اگر حاصل عملیات برابر صفر باشد این بیت یک خواهد شد، در غیر این صورت این بیت صفر می شود.

    پرچم S
    پرچم علامت نامیده می شود و به اختصار آن را با SF نشان می دهیم. مشخص کننده علامت نتیجه عملیات است. یعنی بیت علامت حاصل عملیات در این بیت پرچم ذخیره می شود. لازم به ذکر است که در ریزپردازنده 8086/8088 همانند بسیاری از CPUهای معمول، اعداد منفی در فرمت متمم 2 استفاده می شود و بنابراین آخرین بیت سمت چپ عدد بیانگر علامت آن خواهد بود. پس می توان گفت بیت پرچم S برابر باارزش ترین بیت حاصل عملیات است.

    پرچم D
    پرچم جهت نامیده می شود و با DF آن را نمایش می دهیم. تمام بیت های پرچم که تاکنون بررسی شد همه از نوع شرطی بودند ولی این بیت، بیت پرچم کنترلی است. یعنی قبل از اینکه عمل مورد نظر انجام گیرد، باید مقدار این بیت مشخص شده باشد. این بیت در عملیات مربوط به دستورالعمل های رشته (STRING) به کار برده می شود (در بخش مقالات میکرو رایانه در بحث اسمبلی 8086) و جهت افزایش یا کاهش آدرس ها (محتویات ثبات های شاخص) را تعیین می کند. در دستورالعمل های رشته، ثبات های شاخص به عنوان ثبات های آدرس های مبدا و مقصد به کار می رود و مقدار این بیت تعیین می کند که آیا بعد از هر عمل رشته، محتویات ثبات های شاخص یک (یا دو) واحد افزایش یابد، یا از مقدار آنها کم شود؟ اگر بیت پرچم D یک باشد آدرس ها کاهشی و اگر این بیت صفر باشد آدرس ها افزایشی است.

    پرچم I
    بنام پرچم وقفه نامیده می شود و به اختصار با IF نمایش داده می شود. این بیت وضعیت توانا یا ناتوان بودن وقفه ی پوشش پذیر را تعیین می کند. لازم به ذکر است که ریزپردازنده 8086/8088 دارای یک پایه ورودی وقفه (پوشش پذیر) است و با یک قرار دادن بیت IF می توان آن را توانا ساخت. اگر این بیت پرچم یک باشد و اگر وقفه ایی به ریزپردازنده از طریق پایه وقفه (پایه پوشش پذیر) وارد شود، ریزپردازنده وقفه را خواهد پذیرفت. اگر بیت پرچم وقفه قبل از وقوغ وقفه صفر شده باشد، در صورت وقوع وقفه، به آن ترتیب اثر داده نخواهد شد.

    پرچم T
    بنام پرچم تله (TRAP) نامیده می شود و به اختصار آن را با TF نشان می دهیم. اگر این بیت یک گردد ریزپردازنده را در وضعیت یک مرحله ایی قرار می دهد و با اجرای پله به پله (تک تک) دستورالعمل ها می توان به اشکال زدایی برنامه پرداخت. در حالت عادی این بیت برابر صفر است و برنامه ها به صورت معمولی اجرا می شود. وقتی در حالت یک مرحله ایی قرار گرفت (TF برابر یک شد) پس از اجرای هر دستورالعمل، CPU به طور اتوماتیک یک وقفه داخلی تولید می کند تا برنامه به صورت دستور به دستور اجرا گردد.
    uody

  7. #6
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : سخت افزار 8086/8088

    مفهوم آدرس فیزیکی در ریزپردازنده 8088-8086

    ریزپردازنده 8086/8088 دارای 20 خط آدرس است (گذرگاه آدرس 20 بیتی است) و لذا می تواند حداکثر تا 2 به توان 20 بایت یا یک مگا بایت (1048576 بایت) حافظه را آدرس دهی نماید. پس در داخل ریزپردازنده نیاز به 20 بیت اطلاعات آدرس وجود دارد. ولی دیدیم که تمام ثبات های آن؛ از جمله ثبات های اشاره گر؛ 16 بیتی است. در داخل ریزپردازنده و در برنامه نویسی، آدرس دهی 20 بیتی مورد نیاز است و باید بتوان این 20 بیت را در داخل ثبات ها جای داد.

    برای به دست آوردن 20 بیت اطلاعات آدرس و قرار دادن آن روی خطوط (پایه ها) ریزپردازنده، از روش خاصی استفاده شده است، که در اینجا به شرح آن می پردازیم:

    در ریزپردازنده 8086/8088 برای به دست آوردن حداکثر فضای آدرس دهی حافظه تا یک مگابایت(توضیح بیشتر: در فهرست مقالات میکرو رایانه جستجو کنید)، دو آدرس 16 بیتی باهم ترکیب می شوند. یکی از آدرس ها همواره محتویات یکی از ثبات های قطعه است و آدرس دیگر نیز یک آدرس 16 بیتی است؛ که از آن به عنوان آدرس موثر نام برده می شود و به عنوان offset با محتویات ثبات قطعه ترکیب می شود. آدرس موثر می تواند محتویات هرکدام از ثبات های اشاره گر باشد یا به روش های دیگر به دست آید.

    چگونگی ساخت و تولید آدرس فیزیکی در ریزپردازنده 8088-8086

    به این ترتیب در داخل ریزپردازنده به جای یک آدرس 20 بیتی، دو آدرس 16 بیتی وجود دارد، که این دو آدرس با همدیگر تشکیل یک آدرس فیزیکی (PA) بیست بیتی را می دهند. در شکل زیر چگونگی این ترکیب و تشکیل آدرس فیزیکی آمده است:


    بنابراین ریزپردازنده 8086/8088 برای به دست آوردن آدرس واقعی (actual) بیست بیتی، چهار صفر در سمت راست محتویات ثبات قطعه مورد نظر (که مطابق نرم افزار و برنامه ما برای محاسبه آدرس انتخاب شده) قرار داده و آن را با آدرس موثر جمع می کند. لازم به ذکر است که در داخل ریزپردازنده فقط دو آدرس 16 بیتی وجود دارد و آدرس 20 بیتی واقعی صرفا بر روی پایه های آدرس ریزپردازنده ظاهر می شود و در داخل ریزپردازنده جایی ذخیره نمی گردد.

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

    آدرس موثر + محتویات ثبات قطعه * 16 = آدرس فیزیکی

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

  8. #7
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : سخت افزار 8086/8088

    ثبات های قطعه در 8086-8088

    ثبات های قطعه مشابه ثبات های آدرس در سایر پردازنده ها هستند که برای آدرس دهی حافظه به کار برده می شوند. همانطوریکه اشاره شد در ریزپردازنده 8086/8088 کاربرد ثبات های قطعه برای به دست آوردن آدرس فیزیکی حافظه است. برای به دست آوردن آدرس واقعی (یا فیزیکی) حافظه، محتویات ثبات قطعه با مقدار آدرس موثر (offset) جمع می شود. چگونگی این جمع در بخش آدرس فیزیکی ذکر شد. (در فهرست مقالات سایت میکرو رایانه جستجو کنید) پس این ثبات ها در آدرس دهی دستگاه های ورودی - خروجی هیچ نقشی ندارند.

    در ریزپردازنده 8086/8088 چهار ثبات قطعه وجود دارد که بنام های CS , DS , SS و ES هستند. هر ثبات قطعه یک بلوک 64 کیلو بایتی از حافظه 8086/8088 را آدرس دهی می کند. بدیهی است که ثبات های قطعه می توانند بلوک هایی را که باهم محل های اشتراک دارند، نیز آدرس دهی نمایند. به دلیل آنکه ریزپردازنده 8086/8088 دارای چهار ثبات قطعه است، پس در هر زمان می تواند به چهار قطعه 64 کیلوبایتی از حافظه دسترسی داشته باشد (آدرس دهی نماید).

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

    ثبات CS یا Code Segment
    برای واکشی کردن دستورالعمل ها از حافظه همواره از ثبات CS استفاده می شود. یعنی برای تشکیل آدرس فیزیکی دستور العمل ها در حافظه، محتویات ثبات IP با این ثبات قطعه ترکیب می شود و این مطلب همواره ثابت و تغییر ناپذیر است.

    ثبات DS یا Data Segment
    آدرس دهی و مراجعات به حافظه داده ها نسبت به این ثبات قطعه صورت می گیرد. یعنی برای به دست آوردن آدرس فیزیکی داده ها در حافظه، محتویات ثبات DS به عنوان ثبات قطعه، مورد استفاده قرار می گیرد. البته سه استثنا در این مورد وجود دارد:

    1- آدرس های فیزیکی حافظه پشته با استفاده از ثبات قطعه SS به دست می آیند.

    2- آدرس های حافظه داده ها با استفاده از ثبات BP (یعنی وقتی ثبات BP دارای آدرس موثر حافظه داده ها باشد)، نسبت به ثبات قطعه SS محاسبه می شوند.

    3- در عملیات رشته (String) موقعی که از ثبات شاخص DI به عنوان آدرس موثر استفاده می شود، تشکیل آدرس فیزیکی نسبت به ثبات قطعه اضافی (ES) صورت می گیرد.

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

    ثبات SS یا Stack Segment
    تمام مراجعاتی که به حافظه داده ها با استفاده از ثبات های BP و SP صورت می گیرد (یعنی وقتی ثبات های BP و SP آدرس موثر حافظه را در بر داشته باشند)، آدرس فیزیکی نسبت به ثبات قطعه SS تشکیل می گردد. محتویات ثبات SS مشخص کننده آدرس شروع قطعه حافظه موسوم به حافظه پشته است. بنابراین تمام دستورالعمل های مربوط به پشته (نظیر PUSH , POP , CALL , RET , INT , IRET) از ثبات قطعه SS به عنوان ثبات قطعه پیش فرض برای تشکیل آدرس فیزیکی استفاده می کنند. (در فهرست مقالات سایت میکرو رایانه جستجو کنید). البته برای محاسبه آدرس فیزیکی سایر قطعه های حافظه داده ها نیز می توان از این ثبات قطعه استفاده کرد و این بستگی به نوع حافظه پشته و سازمان دهی آن دارد. بعدا در این مورد مطالعه خواهیم کرد.

    ثبات ES یا Extra Segment
    همانطوریکه که ذکر شد در آدرس دهی حافظه مربوط به عملیات رشته (String) ؛ که با استفاده از ثبات DI صورت می گیرد؛ آدرس فیزیکی حافظه نسبت به ثبات قطعه ES محاسبه خواهد شد. البته غیر از آن، این ثبات می تواند برای محاسبه آدرس حافظه داده ها نیز بکار گرفته شود.
    uody

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. بحث: نرم افزار حسابداري ( afg ) !!!
    توسط پديده در انجمن اخبار حسابداری
    پاسخ ها: 0
    آخرين نوشته: 22nd February 2010, 11:35 AM
  2. بحث: مقايسه فني نرم افزار حسابداري پارسا 2000 با هلو
    توسط پديده در انجمن اخبار حسابداری
    پاسخ ها: 0
    آخرين نوشته: 21st February 2010, 11:53 PM
  3. مقاله: تاريخچه پيدايش نرم افزارهاي حسابداري در ايران
    توسط پديده در انجمن اخبار حسابداری
    پاسخ ها: 0
    آخرين نوشته: 21st February 2010, 06:28 PM
  4. 46 نرم افزار آموزشی(مالتی مدیا)
    توسط Karim1504 در انجمن نرم افزارهای آموزشی
    پاسخ ها: 0
    آخرين نوشته: 6th February 2010, 05:18 PM
  5. پنج نرم افزار برتر برای نگهداری از ویندوز
    توسط moji5 در انجمن سایر نرم افزارها
    پاسخ ها: 0
    آخرين نوشته: 7th November 2009, 07:45 PM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •