
بسیاری از کاربران در هنگام کار با PC از توانایی آن در حل مسائل پیچیده متعجب میشوند کاربران اغلب این تواناییها را به نرم افزار یا سیستم عامل نسبت میدهند. واقعیت این است که سخت افزار هم به اندازۀ نرم افزار مهم است
ریزپردازنده
ریز پردازنده مغز PC .است ریز پردازنده تعداد محدودی دستورالعمل و پردازه های زبان ماشین را میفهمد یا به عبارت دیگر برنامههای نوشته شده به این زبان ماشین را اجرا می.کند این دستورالعملها بسیار سادهاند و نمیتوان آنها را با فرمانهای زبانهای سطح بالایی همچون ،بیسیک ،پاسکال یا C مقایسه کرد فرمانهای نوشته شده به این زبانها باید به تعداد زیادی دستورالعمل زبان ماشین ترجمه شوند تا ریز پردازنده PC بتواند آنها را اجرا .کند مثلاً نمایش متن با دستور PRINT بیسیک به معادل چند صد دستورالعمل زبان ماشین نیاز دارد.
دستورالعملهای زبان ماشین برای ریزپردازندههایی که در کامپیوترهای مختلف به کار میروند مختلفاند. وقتی میشنوید که کسی در بارۀ زبان اسمبلی ،Z-80، 6502 يا 8088 صحبت می کند این اصطلاحات به ریز پردازنده ای که برای آن برنامه نوشته می شود، اشاره دارند.
سری 80xx اینتل
PC خانواده ای از تراشه های ریز پردازنده خاص خود را دارد که همۀ آنها را شرکت اینتل طراحی کرده است. شکل زیر شجره نامۀ خانوادۀ 80xx اینتل را نشان میدهد. PCی شما ممکن است حاوی یک ریز پردازنده 8086 8088 (که در PC/XT به کار میرود)، 80186، 80286 که در AT به کار میرود یا حتی یک 80386 باشد. اولین نسل این گروه
( 8086) در سال ۱۹۷۸ تهیه شد اخلاف 8086 با تراشه اولیه متفاوت بودند 8088 در واقع قدمی به عقب است زیرا همان ساختار داخلی و دستورالعملهای 8086 را دارد، اما از 8086 کندتر .است دلیل آن این است که 8086 در هر زمان ١٦ بیت (۲ بایت)را بین حافظه و ریزپردازنده انتقال میدهد 8088 کندتر است زیرا فقط ۸ بیت (۱ بایت) را در هر زمان انتقال میدهد.

چند پردازی
سه ریز پردازنده دیگر این خانواده گونههای پیشرفته تر 8086 هستند. 80186 توابعی کمکی را در اختیار می گذارد 80286 ثباتهای اضافی و قابلیتهای آدرس دهی گسترش یافته ای دارد. بزرگترین مزیتهای 80286 بر اسلاف آن قابلیتهای چند پردازی و حافظه مجازی آن هستند. چند پردازی این امکان را میدهد که چند برنامه همزمان اجرا شوند، همچون ترجمه کردن یک برنامه همزمان با استفاده از یک واژه پرداز این قابلیت که بر سویچ کردن سریع بین چند برنامه مبتنی است میتواند از طریق نرم افزار نیز پیاده سازی شود (مثلاً با Microsoft Windows) ، اما مستقيماً عمل کردن از طریق ریز پردازنده بازدهی بیشتری دارد.
حافظه مجازی
حافظه مجازی به این معناست که یک برنامه ظاهراً از حافظه ای بسیار بیشتر از آنچه در RAM کامپیوتر موجود است استفاده می.کند بخشهایی از برنامه ها یا داده ها که در حافظه جا نمیگیرند موقتاً در دستگاه حافظه انبوه دیسک نرم یا سخت نگهداری میشوند. کامپیوتر به هنگام لزوم این بخشها را به درون RAM می.آورد CPU و سیستم عامل کار مدیریت حافظه مجازی را مشترکاً انجام میدهند گونههای قدیمی MS-DOS قابلیتهای چند پردازی یا حافظه مجازی 80286 را پشتیبانی نمیکنند، بنابراین، اکثر کامپیوترهای AT با توان بالقوه کامل خود کار نمی کنند.
80386 نماینده آخرین پیشرفت تکنولوژی در حال حاضر است. مجموعه دستورالعملهای آن از 80286 گسترده تر است و قابلیتهای حفاظت از حافظه بیشتری دارد.
همۀ این پردازنده ها سازگاری رو به بالا با نرم افزار دارند یعنی برنامه های زبان ماشین تهیه شده برای 8086 را میتوان روی پردازندههای دیگر این سری اجرا کرد از سوی دیگر، یک برنامه نوشته شده برای 80386 ممکن است روی 80286 یا 8088 به درستی اجرا نشود زیرا دستورالعملهای موجود برای 80386 ممکن است در پردازنده های قبلی موجود نباشند. در سراسر این کتاب پردازنده PC را با 8088 مشخص می کنیم، اگرچه پردازنده مورد استفاده PCی شما ممکن است پردازنده دیگری باشد
۲ - ۱ ثباتهای 8088
ثباتها خانه های حافظه ای هستند که درون خود پردازنده قرار دارند و نه در RAM به این ثباتها میتوان بسیار سریعتر از RAM دست .یافت به علاوه ثباتها خانه های حافظۀ تخصصی هستند CPU عملیات حسابی و منطقی را با استفاده از ثباتهای خود انجام میدهد.

اندازۀ همۀ ثباتها ١٦ بيت (۲ بايت) است. اگر همۀ ١٦ بیت یک ثبات حاوی مقدار ۱ باشند، بزرگترین عددی که میتوان با ١٦ بیت نمایش داد به دست می آید. این عدد ، عدد دهدهی ۶۵۵۳۵ است. بنابراین، یک ثبات میتواند حاوی هر مقداری از ۰ تا ٦۵۵۳۵ باشد.
گروه بندی ثباتها
چنانکه در شکل بالا نشان داده شده است، ثباتها به چهار گروه تقسیم می شوند : ثباتهای عمومی، ثباتهای قطعه، شمارنده برنامه، و ثبات پرچمها. تخصیص وظایف مختلف به ثباتها به گونه ای طراحی میشود که تقلیدی باشد از نحوه ای که یک برنامه داده ها را پردازش می کند، یعنی کاری که وظیفۀ اصلی یک ریزپردازنده است.
سیستم عامل دیسکی و روالهایی که در ROM قرار دارند از ثباتهای عمومی استفاده زیادی میکنند، به ویژه از ثباتهای CX BX AX و DX محتویات این ثباتها به DOS میگوید که کدام کارها را باید اجرا کند و کدام دادهها را برای اجرا به کار برد.
مقدار این ثباتها عمدتاً با اجرای دستورالعملهای ریاضی (جمع، تفریق، و غیره) و ورودى - خروجی تغییر می کند. در ثباتهای 8088 برای آنها جایگاه ویژه ای اختصاص یافته است، زیرا آنها را میتوان به دو ثبات ۸ بیتی (۱ بایتی) تقسیم کرد. می توان فرض کرد که هر ثبات عمومی از سه ثبات تشکیل شده است: یک ثبات ١٦ بیتی، یا دو ثبات کوچکتر ۸ بيتي.

ثباتهای ۸ بیتی را با دو علامت H (مخفف high یعنی بالا) و L (مخفف low یعنی پایین) مشخص میکنند. بنابراین، ثبات ١٦ بیتی AX را میتوان به دو ثبات ۸ بیتی AH و AL تقسیم کرد. علامتهای H و L در ثباتها طوری به کار میروند که ثبات L حاوی ۸ بیت پایینتر (بیتهای ۰ تا ۷) ثبات X است، و ثبات H حاوی ۸ بیت بالاتر ( بیتهای ۸ تا ۱۵) ثبات X است. ثبات AH از بیتهای ۸ تا ۱۵ و ثبات AL از بیتهای ۰ تا ۷ ثبات AX تشکیل می شود. با این حال، این سه ثبات را نمیتوان مستقل از هم تصور کرد. مثلاً اگر بیت ۳ از ثبات AH تغییر داده شود، مقدار بیت ۱۱ از ثبات AX هم خود به خود تغییر خواهد کرد. در این مورد مقادیر ثباتهای AH و AX هر دو تغییر می کند. مقدار ثبات AL ثابت می ماند زیرا از بیتهای ۰ تا ۷ ثبات AX تشکیل میشود( بیت ۱۱ از ثبات AX متعلق به آن نیست) این رابطه بین ثباتهای AH، AX و AL برای همۀ ثباتهای عمومی دیگر نیز برقرار است و آن را میتوان به صورت ریاضی بیان کرد
میتوان مقدار ثبات X را از روی مقادیر ثباتهای H و L تعیین کرد ، و بر عکس. برای محاسبة مقدار ثبات X مقدار ثبات H را در ۲۵٦ ضرب و مقدار ثبات L را با آن جمع کنید.
۲ - ۲ آدرس دهی قطعه و فاصله از مبدأ
یکی از اهداف طراحی 8088 فراهم کردن مجموعه دستورالعملهایی بود که برتر از ریز پردازندههای ۸ بیتی قدیمیتر (6502 ، Z80 و غیره) باشد. یک هدف دیگر فراهم ساختن دسترسی آسان به بیش از ٦٤ کیلوبایت حافظه بود. این هدف اهمیت خاصی داشت زیرا قابلیتهای فزاینده پردازنده ها به برنامه نویسان امکان میدهد که برنامه های کاربردی پیچیده تری بنویسند، که به نوبۀ خود حافظه بیشتری را اقتضا می کند. طراحان 8088 ظرفیت حافظه یا فضای آدرس ریزپردازنده را به بیش از ١٦ برابر یعنی یک مگابایت افزایش دادند.
ثبات آدرس
تعداد خانه های حافظه ای که یک پردازنده میتواند به آنها دست یابد به عرض ثبات آدرس بستگی دارد از آنجا که به هر خانۀ حافظه با مشخص کردن یک عدد یا آدرس منحصر به فرد مراجعه میشود حداکثر مقداری که در ثبات آدرس می گنجد فضای آدرس را تعیین می کند. ریز پردازنده های قدیمیتر از یک ثبات آدرس ١٦ بیتی استفاده میکردند که امکان دسترسی به آدرسهای ۰ تا ۶۵۵۳۵ را فراهم می ساخت. این مقدار متناظر است با ظرفيت حافظة ٦٤ كيلوبایتی این پردازنده ها.
برای آدرس دهی یک مگابایت حافظه ثبات آدرس باید حداقل ۲۰ بیت عرض داشته .باشد در زمانی که 8088 تهیه شد، استفاده از ثبات آدرس ۲۰ بیتی غیر ممکن بود؛ بنابراین طراحان از راه دیگری برای نیل به عرض ۲۰ بیت استفاده کردند؛ این راه این است که از محتويات دو عدد ١٦ بيتى مختلف برای تشکیل آدرس ۲۰ بیتی استفاده میشود.
ثبات قطعه
یکی از این عددها در یک ثبات قطعه قرار داده می شود. 8088 چهار ثبات قطعه دارد. عدد دوم در یک ثبات دیگر یا در یک خانه حافظه قرار داده میشود. برای تشکیل یک عدد ۲۰ بیتی، محتویات ثبات قطعه ٤ بیت به چپ انتقال داده میشود ( که به این ترتیب مقدار آن در ١٦ ضرب میشود) و عدد دوم با اولی جمع می شود.
آدرسهای قطعه و فاصله از مبدأ
این آدرسها آدرس قطعه و آدرس فاصله از مبدأ هستند. آدرس قطعه با یک ثبات قطعه تشکیل میشود و شروع یک قطعه از حافظه را نشان میدهد. برای تشکیل آدرس، آدرس فاصله از مبدأ با آدرس قطعه جمع می شود. آدرس فاصله از مبدأ شمارۀ خانه حافظه را در داخل قطعه ای که آغاز آن با ثبات قطعه معین شده است نشان میدهد. از آنجا که آدرس فاصله از مبدأ هرگز نمیتواند بزرگتر از ١٦ بیت باشد، یک قطعه نمیتواند بزرگتر از ۲۵۵۳۵ بایت (۶۴ K) باشد.

آدرس قطعه دار
آدرس قطعه دار از ترکیب آدرسهای قطعه و فاصله از مبدأ حاصل میشود. این آدرس شمارهٔ دقیق خانه ای از حافظه را که باید به آن مراجعه شود مشخص میکند. بر خلاف آدرس قطعه دار، آدرسهای قطعه و فاصله از مبدأ آدرسهای نسبی یا فاصله از مبدأهای نسبی هستند.
یک قطعه نمیتواند در هر جای دلخواه از حدود یک میلیون خانۀ حافظه موجود شروع شود. ضرب کردن ثبات قطعه در ١٦ همیشه آدرس قطعه ای تولید میکند که بر ١٦ قابل قسمت است. مثلاً ممکن نیست که قطعه ای از خانه حافظه ۲۲ آغاز شود.
ترکیب آدرسهای قطعه و فاصله از مبدأ نیازمند نماد خاصی برای نشان دادن آدرس یک خانه حافظه است. این نماد از آدرس قطعه با قالب یک عدد شانزده شانزدهی چهار رقمی به دنبال آن علامت (:) و به دنبال آن آدرس فاصله از مبدأ با قالب یک عدد شانزده شانزدهی

چهار رقمی تشکیل میشود. مثلاً خانه حافظه ای با آدرس قطعهٔ 2000h و آدرس فاصله از مبدأ AF3h با این نماد گذاری به صورت 2000:0AF3 نشان داده خواهد شد. با استفاده از این نماد گذاری، میتوان پسوند h یا H را از عددهای شانزده شانزدهی حذف کرد.
8088 چهار ثبات قطعه دارد، که نقشهای خاصی در اجرای یک برنامۀ زبان اسمبلی
دارند. چهار ثبات برای پشتیبانی ساختار اساسی هر برنامه ای وجود دارد. هر برنامه از مجموعه ای از دستورالعملها (کد ) تشکیل می شود. همچنین متغیرها و اقلامی از داده ها وجود دارند که برنامه آنها را پردازش می کند. یک برنامۀ ساخت یافته کد و داده ها را در حالی که در حافظه قرار دارند از هم جدا نگه میدارد. اختصاص قطعه های جداگانه به کد و
داده ها آنها را به آسانی از هم جدا می کند.
هر یک از دو مجموعه کد و داده ها به یک آدرس قطعه و یک ثبات قطعه نیاز دارد. ثبات CS (مخفف Code Segment به معنی قطعه که) از IP ( مخفف Instruction Pointer به
معنی اشاره گر دستورالعملها) به عنوان آدرس فاصله از مبدأ استفاده میکند. بنابراین، IP آدرسی را معین میکند که دستورالعمل بعدی زبان اسمبلی در آن قرار دارد. IP شمارنده برنامه نیز خوانده میشود. وقتی که پردازنده دستورالعمل فعلی را اجرا میکند، ثبات IP به طور خودکار افزایش داده میشود تا به دستورالعمل زبان ماشین بعدی اشاره .کند با این کار اجرای دستورالعملها با ترتیب صحیح تضمین میشود.
همچون ثبات CS ، ثبات DS( مخفف Data Segment به معنی قطعه دادهها) نیز حاوی آدرس قطعۀ داده هایی است که برنامه به آنها مراجعه میکند. آدرس فاصله از مبدأ به ثبات DS اضافه میشود؛ این آدرس ممکن است در ثبات دیگری باشد یا بخشی از دستورالعمل
جاری باشد.
ثبات SS (مخفف stack Segment به معنی قطعه پشته) آدرس شروع پشته را مشخص میکند. پشته به عنوان فضای حافظه موقت برای برخی از برنامه های زبان اسمبلی عمل میکند. این فضا امکان ذخیره و بازیابی سریع دادهها را برای دستورالعملهای مختلف فراهم می سازد. مثلاً وقتی دستور CALL اجرا میشود، پردازنده آدرس برگشت را روی پشته قرار می دهد. ثبات SS همراه با ثبات SP یا BP آدرسی را که روی پشته قرار داده میشود تشکیل می دهد
آخرین ثبات قطعه ثبات ES ( مخفف Extra Segment به معنی قطعه اضافی) است. برخی از برنامه های زبان اسمبلی از آن برای آدرس دهی بیش از 64K از داده ها یا برای انتقال داده ها بین دو قطعه مختلف از حافظه استفاده میکنند.
چنانکه شکل قبل نشان میدهد دو ثبات قطعه میتوانند نواحیی از حافظه را مشخص کنند که همپوشانی داشته باشند یا کاملاً از یکدیگر جدا باشند در بسیاری از موارد ، برنامه نیاز به یک قطعه کامل ٦٤ کیلوبایتی برای نگهداری کد یا داده ها ندارد. با

همپوشانی قطعه ها میتوان در حافظه صرفه جویی .کرد مثلاً با دادن مقدار مناسب به ثباتهای DS و CS میتوان دادهها را بلافاصله پشت سر کد برنامه قرار داد.
ثبات پرچمها حائز اهمیت خاصی است بیتهای مختلف این ثبات نشاندهنده یا اخطار کنندۀ شرایط خاصی هستند که ممکن است در طی اجرای یک دستورالعمل زبان اسمبلی رخ دهند. مثلاً اگر حاصل یک عمل حسابی عددی منفی باشد ، پردازنده پرچم S (مخفف Sign به معنی علامت) را برای نشان دادن این وضعیت ۱ می کند. اگر مجموع دو عدد ۸ بیتی را نتوان به صورت یک عدد ۸ بیتی نشان داد ، ثبات C (مخفف Carry به معنی دو بر یک یا نقلی) برابر ۱ میشود.
چنانکه شکل نشان میدهد، پردازنده از همۀ ١٦ بیت این ثبات استفاده نمی کند. بیتهای بلا استفاده در حالت عادی مقدار • را در خود دارند.
در اینجا سفر کوتاه ما به داخل مغز PC به پایان میرسد. اگر برخی از این مفاهیم را نتوانستید کاملاً دنبال کنید برنامههای کاربردی نمونۀ ارائه شده در بخش مربوط به توابع BIOS و DOS کمک خواهند کرد که آنهارا بفهمید.
۲ - ۳ تراشه های پشتیبان CPU
ریز پردازنده مغز ،کامپیوتر و احتمالاً هوشمندترین جزء در یک سیستم کامپیوتری است. با این حال نمیتواند به تنهایی بر همۀ عملیات کامپیوتر نظارت کند. به همین دلیل اجزای دیگری که تراشه های پشتیبان خوانده میشوند بسیاری از کارهای دیگر را انجام می دهند ، و به پردازنده امکان می دهند که بر روی کار اصلی خود که اجرای برنامه های زبان اسمبلی است متمرکز باشد.
این تراشه های پشتیبان با دستگاههای جانبی از قبیل دیسک خوان یا صفحه نمایش ارتباط برقرار میکنند و آنها را کنترل میکنند.
برخی از این تراشه های پشتیبان را میتوان با استفاده از دستورالعملهای زبان اسمبلی IN و OUT برنامه دهی کرد. از آنجا که برنامه دهی اکثر تراشه های پشتیبان بسیار پیچیده است توصیه میکنیم که این کار را به DOS واگذارید مگر اینکه درک کاملی از ساختار و را عملکرد این تراشه ها داشته باشید.
در بخشهای بعدی مهمترین تراشههای پشتیبان PC را معرفی میکنیم.
۱-۳-۲ کنترل کنندۀ DMA
نام این تراشه از DMA گرفته شده است که از حروف اول کلمات Direct Memory Access به معنی مراجعه مستقیم به حافظه تشکیل می شود. این تراشه میتواند مستقیماً داده ها را در RAM بنویسد یا از آن بخواند. کنترل کنندۀ DMA عملیات ورودی خروجی دیسک، انتقال داده ها از RAM به دیسک یا از دیسک به RAM را انجام میدهد به این ترتیب پردازنده از این کار معاف و اجرای برنامه ها تسریع میشود.
۲-۳-۲- کنترل کنندۀ وقفه ها
وقفه ها سیگنالهایی از هر یک از اجزای سیستم برای جلب توجه CPU و آغاز کارهای معینی هستند. ممکن است چند وقفه یا درخواست سرویس دهی از سوی اجزای مختلف سیستم در یک زمان منتظر CPU باشند. کنترل کنندۀ وقفه ها این درخواستها را بررسی و سپس آنها را به CPU رد میکند. این تراشه به هر درخواست وقفه اولویتی بر اساس منشأ آن میدهد و ابتدا درخواست دارای بالاترین اولویت را به CPU رد می کند. کنترل کنندۀ وقفه ها در PC/XT میتواند تا ۸ درخواست وقفه را همزمان پردازش کند. کامپیوترهای AT نیاز به قدرت بیشتری دارند و بنابراین از دو کنترل کننده مرتبط با هم استفاده میکنند که میتوانند تا ۱۵ درخواست وقفه را همزمان پردازش کنند.
٢-٣ - ٣ واسطهٔ قابل برنامه دهی دستگاههای جانبی
این تراشه یک پل ارتباطی را بین CPU و دستگاههای جانبی از قبیل صفحه کلید یا یک بلندگوی صوتی فراهم میکند ، اما فقط به عنوان یک واسطه عمل میکند که CPU برای دسترسی به واحدها و ارسال سیگنالهای معینی آن را آدرس دهی می کند. کنار گذاشتن PPI (مخفف Programmable Peripheral Interface به معنی واسطه قابل برنامه دهی دستگاههای جانبی و برقراری ارتباط مستقیم بین CPU و دستگاههای جانبی) امکانپذیر نیست.
٢ - ٣-٤ ساعت
اگر پردازنده مغز کامپیوتر باشد، ساعت را باید قلب کامپیوتر دانست. این قلب چندین میلیون بار در ثانیه می تپد ( در حدود ١٤٣ مگاهرتز ) و ریز پردازنده و تراشه های دیگر سیستم را همگام می کند. از آنجا که تقریباً هیچ یک از تراشه ها با چنین فرکانسهای بالایی کار نمیکند، هر یک از تراشه های پشتیبان فرکانس ساعت را تغییر میدهد و با مقتضیات خود هماهنگ می کند.
۳-۲- ۵ زمان سنج
از تراشۀ زمان سنج میتوان به عنوان یک شمارنده و زمان نگهدار استفاده کرد. این تراشه پالسهای الکتریکی ثابتی را از یکی از پایه های خروجی اش ارسال میکند فرکانس این پالسها را میتوان به اندازه لازم برنامه دهی کرد و هر یک از پایه های خروجی میتواند فرکانس خاص خود را داشته باشد. هر پایۀ خروجی به یک جزء دیگر متصل میشود. یک خط به بلندگوی صوتی میرود و خط دیگری به کنترل کنندۀ وقفه ها خطی که به کنترل کننده
وقفه ها متصل است در هر پالس خود وقفۀ ۸ را فعال میکند ، که شمارنده زمان سنج را افزایش میدهد.
٢ - ٣-٦ كنترل کننده صفحه نمایش
بر خلاف تراشه هایی که تاکنون در بارۀ آنها بحث شد ، کنترل کننده CRT (لامپ اشعه کاتدی) از بورد مدار اصلی PC جداست. این تراشه را میتوان روی بورد تصویر که در یکی از شکافهای گسترش کامپیوتر سوار میشود یافت. اگرچه بوردهای بسیار متنوعی موجود است که قابلیتهای آنها تفاوتهای گسترده ای دارد ، اساس همۀ بوردهای تصویر کنترل کننده CRT ی 6845 است. این کنترل کننده چندین ثبات داخلی دارد که خروجی صفحه نمایش را کنترل می کنند.
۷-۳-۲ کنترل کننده دیسک
این تراشه نیز معمولاً روی یک بورد گسترش قرار دارد. سیستم عامل آن را آدرس دهی میکند و کار آن کنترل عملیات دیسک خوان است. این تراشه هد خواندن و نوشتن دیسک خوان را روی دیسک حرکت میدهد، دادهها را از دیسک میخواند و روی دیسک می نویسد.
۸-۳-۲ همپردازندههای ریاضی (8087، 80287، 80387)
۸۰۸۸، ۸۰۲۸۶ و ۸۰۳۸۶ مستقیما قادر به انجام عملیات حسابی اعشاری نیستند. سوکتی روی بورد مدار اصلی PC برای اضافه کردن یک همپردازندهٔ ریاضی خاص وجود دارد. PC/XT از همپردازنده 8087 استفاده میکند، 80286 از ،80287 ، و پردازنده 80386 از 8037 استفاده میکند.
اگرچه حساب اعشاری را با استفاده از روالهای نرم افزاری نیز میتوان انجام داد، اما یک همپردازندۀ ریاضی تا ۱۰۰ برابر سریعتر است. 8087 و 80287 میتوانند عملهای ابتدایی ریاضی از قبیل ،جمع، تفریق، ضرب و تقسیم را انجام دهند و همچنین توابع مثلثاتی هم سینوس و کسینوس و غیره را حساب کنند این همپردازنده ها ریشه دوم اعداد را میتوانند حساب کنند. به طور کلی تنها چند بسته نرم افزاری کاربردی همپردازنده های ریاضی را پشتیبانی میکنند.
٢ - ٤ سی پی یو و حافظه
تراشه هایی که تاکنون شرح دادیم اجزای هوشمندی از سیستم هستند، در حالی که حافظه یک عنصر غیر فعال است در حافظه میتوان دادهها را ذخیره و بعداً آنها را بازیابی کرد، هر خانه حافظه برای ذخیره یک بایت (۸ بیت) داده به کار میرود خانه های حافظه با آدرس منحصر به فردی که از صفر شروع میشود شناسایی میشوند.
تراشه های پشتیبان با استفاده از یک گذرگاه یا معبر که سیگنالهای الکتریکی روی آن به این سو و آن سو میروند با حافظه ارتباط برقرار میکنند.
گذرگاه آدرس
گذرگاه آدرس شمارۀ خانه ای از حافظه را که میخواهیم به آن مراجعه کنیم حمل میکند. سیگنالهای روی گذرگاه نمایندۀ یک عدد دودویی هستند که مقدار آن خانه ای از حافظه را که دسترسی به آن مطلوب است نشان میدهد. از آنجا که فقط به خانه هایی از حافظه که گذرگاه آدرس به آنها اشاره کند میتوان دست یافت، تعداد خطوط گذرگاه تعداد خانه های حافظه قابل آدرس دهی را تعیین می کند.
گذرگاه داده ها
پس از آنکه گذرگاه آدرس فهمید به چه خانه ای از حافظه میخواهیم مراجعه کنیم، از طریق گذرگاه داده ها میتوان داده ها را بین تراشه های مختلف و خانۀ حافظه انتقال داد. تعداد خطوط این مدار تعیین میکند که چه تعداد بیت همزمان به حافظه منتقل یا از آن خارج
می شوند.
PC/XT هشت خط دارد و بنابراین در هر زمان میتواند یک بایت را انتقال دهد، اما از آنجا که 8088 یک پردازنده ١٦ بیتی است، اغلب باید ١٦ بیت داده انتقال یابند. تعداد خط ها برای انتقال ١٦ بیت کافی نیست؛ بنابراین سیستم یک قلم داده ١٦ بیتی را به دو عدد ۸ بیتی تقسیم میکند. این دو بایت دادۀ ۸ بیتی پشت سر هم از طریق گذرگاه انتقال می یابند. پردازندههای 8086 و 80286 میتوانند ۱٦ بیت را همزمان روی گذرگاههای داده ١٦ بیتی خود انتقال دهند یکی از دلایل اینکه AT برنامه ها را سریعتر از پردازنده 8088 اجرا میکند، همین است. پردازنده 80386 میتواند ۳۲ بیت را همزمان انتقال دهد.
نگهداری کلمات در حافظه
همه اعضای خانواده ریز پردازنده های 80xx اینتل روش یکسانی برای نگهداری کلمه ها (داده های ١٦ بیتی) در حافظه دارند. خانه ای از حافظه که شمارۀ پایینتر دارد حاوی بیتهای ۰ تا ۷ است (بایت پایین) و خانه حافظه دارای شمارۀ بالاتر حاوی بیتهای ۸ تا ۱۵ است (بایت بالا). مثلاً اگر کلمۀ 3F87h را در محلی از حافظه که از آدرس 0000:0400 شروع می شود قرار دهیم خانۀ 10000:0400 بایت پایین یعنی 87 و خانۀ 0000:0401 بایت بالا یعنی 3Fh را می پذیرد.
در بحث از حافظه تا اینجا به دو نکته اشاره نکرده ایم:
۱. پردازنده اهمیتی نمیدهد که یک آدرس حافظه در تراشه RAM واقع است یا تراشه ROM تفاوت اصلی RAM و ROM در این است که در ROM داده های جدید نوشته یا ذخیره نمی شود( نام آن هم از اینجا گرفته شده است؛ ROM مخفف Read Only Memory به معنی حافظه فقط خواندنی است )
۲. فضای قابل آدرس دهی ریزپردازنده (۱ مگابایت) به ١٦ قطعه ٦٤ کیلوبایتی تقسیم می.شود این یک تقسیم تقریباً همگانی است که در IBM PC/XT ها و اکثر کامپیوترهای سازگار با آن به کار می رود.

۱۰ قطعه اول حافظه برای حافظه RAM اصلی نگه داشته می شوند، که حداکثر RAM را به 640K محدود می کند. اندازۀ حافظهٔ کامپیوترهایی که سازندگان مختلف PC می سازند ممکن است متفاوت باشد اما حداقل 64K در قطعه ۰ نصب می شود. اگر RAM اضافی نصب کنید، اولین آدرس حافظه آن باید بلافاصله پس از آخرین آدرس حافظه موجود باشد ، زیرا نباید فاصله ای بین قطعه های مختلف حافظه RAM وجود داشته باشد. قطعه حافظه نقش خاصی دارد زیرا حاوی دادههایی مهم و روالهای سیستم عامل است. قطعه A از حافظه به دنبال حافظه RAM می آید. در این قطعه یک EGA (مخفف Extended Graphics Adapter یا آداپتور گرافیکی بسط یافته) نصب میشود این بورد از این قطعه حافظه برای نمایش اطلاعات بر روی صفحه نمایش با حالتهای گرافیکی مختلف استفاده میکند.
قطعه B از حافظه برای یک بورد گرافیکی تکرنگ یا رنگی نگه داشته میشود. این بوردها مشترکاً از این قطعه به عنوان حافظهٔ صفحه نمایش استفاده می کنند. بورد تکرنگ از ۳۲ کیلوبایت پایین و بورد رنگی از ۳۲ کیلوبایت بالا استفاده می کند. این بورد فقط از مقداری از حافظه استفاده میکند که برای نمایش اطلاعات بر روی صفحه نیاز دارد. بورد تکرنگ از ٤ استفاده میکند ؛ بورد رنگی به دلیل قابلیتهای رنگی بیشترش از ١٦٧ استفاده می کند.
قطعه بعدی حافظه حاوی ROM است که از قطعۀ C آغاز می شود. بعضی از کامپیوترها روالهایی از BIOS را که بخشی از هسته اصلی BIOS نیستند در این محل نگه میدارند. مثلاً XT از این روالها برای پشتیبانی دیسک سخت استفاده می کند از آنجا که از همه این ناحیه استفاده نمی شود، ممکن است روالهایی از BIOS برای پشتیبانی پیشرفتهای سخت افزاری آینده نیز در این محدوده از حافظه قرار داده شود.
کارتریجهای ROM
قطعه های D و E برای کارتریجهای ROM نگه داشته میشوند. این کارتریجها روالهای ROM معینی را به کامپیوتر اضافه میکنند در PC به ندرت از آنها استفاده شده است و این ناحیه معمولاً بدون استفاده میماند.
قطعة F حاوی روالهای خود BIOS بارکننده سیستم و ROM BASIC موجود در بسیاری از کامپیوترهاست.
Telegram: @CaKeegan
Gmail : amidgm2020@gmail.com